我使用Gulp、Browserify和Babelify将源代码从ES6 + JSX编译成普通Javascript。
我的gulpfile.js看起来像:
var gulp = require('gulp')
var fs = require("fs")
var browserify = require("browserify")
var babelify = require("babelify")
gulp.task('es6',function(){
return browserify({ debug: true })
.transform(babelify.configure({
extensions: ['.es6']
}))
.require("./src/es6/app.es6", { entry: true })
.bundle()
.on("error", function (err) { console.log("Error : " + err.message); })
.pipe(fs.createWriteStream("./build/js/bundle.js"))
})我的app.es6的第一行是:
"use strict"
import React from 'react'
import MenuBar from './menu'当我运行$ gulp es6时,会得到以下错误:
Error : 'import' and 'export' may appear only with 'sourceType: module'但是,当我使用Browserify的cli时,不会发生这种情况:
$ browserify src/es6/app.es6 -t babelify -o build/js/bundle.js --extension=.es6对于如何解决这个问题,有什么想法吗?
发布于 2015-05-15 04:02:03
extensions:['.es6']选项需要添加到浏览器的配置中:
browserify({ debug: true, extensions: ['.js', '.json', '.es6'] })整个gulpfile应该如下所示:
var gulp = require('gulp')
var fs = require("fs")
var browserify = require("browserify")
var babelify = require("babelify")
gulp.task('es6',function(){
var extensions = ['.js','.json','.es6'];
return browserify({ debug: true, extensions:extensions })
.transform(babelify.configure({
extensions: extensions
}))
.require("./src/es6/app.es6", { entry: true })
.bundle()
.on("error", function (err) { console.log("Error : " + err.message); })
.pipe(fs.createWriteStream("./build/js/bundle.js"))
})https://stackoverflow.com/questions/30250003
复制相似问题