【发布时间】:2016-03-02 01:06:43
【问题描述】:
这是我将 ES6 代码编译成单个 ES5 文件的 gulp 任务。我在 ES6 中使用类和模块(import、export)。
gulp.src(paths.scripts)
.pipe(sourcemaps.init())
.pipe(babel({
presets: ['es2015']
}))
.pipe(concat('all.js'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./www/js'));
但是,由于 Babel 将 ES6 import 指令编译成 require 命令,并且 require 将尝试请求文件,因此请求文件失败,因为所有 ES5 代码都被合并到一个文件 all.js 中。
结果是一堆“错误:找不到模块”错误。当模块都保存在一个文件中时,如何编译可以工作的模块?
【问题讨论】:
-
如果没有 Browserify 之类的东西,这似乎不再起作用(另请参阅 this answer)。但是,由于您似乎打算在浏览器中运行代码,因此无论如何您都应该看看 :-)
标签: javascript ecmascript-6 babeljs ecmascript-5