在 node.js 项目中使用 babel 时,我试图将我的所有文件捆绑到一个转译和缩小的 js 文件中。
我正在使用 gulp-babel 6.1.2 运行 babel,我已经安装了 ES-2015 预设(6.13.2)。
我正在用我的文件和 typeahead 0.11.1 构建一个包,问题是当运行 gulp 任务并通过 babel 管道时,typeahed 功能不起作用(未捕获的 TypeError:无法设置未定义的属性 'Bloodhound')。如果我再次运行任务,从管道中删除 babel 命令,一切正常。
我知道我可以构建两个单独的包,一个用于我的文件,另一个用于外部文件,但我想知道它为什么会失败。
我的吞咽任务:
gulp.task('bundleCheckoutDesktopJs', function () {
var js = ['./src/js/project/external/*', './src/js/project/common/*', './src/js/project/*'];
return gulp.src(js)
.pipe(babel())
.pipe(concat('project.min.js'))
.pipe(uglify())
.pipe(gulp.dest('statics/js/'));
});
我经过一段时间调查后取得的结果(typeahead.js):
(function(root, factory) {
if (typeof define === "function" && define.amd) {
define("bloodhound", [ "jquery" ], function(a0) {
return root["Bloodhound"] = factory(a0);
});
} else if (typeof exports === "object") {
module.exports = factory(require("jquery"));
} else {
// Root seems to be undefined here....
root["Bloodhound"] = factory(jQuery);
}
})
任何帮助将不胜感激,在此先感谢。