考虑以下示例代码(也许我做错了?)
var FlareCurrency = {
};
export {FlareCurrency};
我有以下任务:
gulp.task("compile:add-new-currency-minified", function(){
return gulp.src('src/add-new-currency/**/*.js')
.pipe(babel())
.pipe(concat('Flare-AddNewCurrency.js'))
.pipe(uglify({"preserveComments": "all"}))
.pipe(gulp.dest('dist/minified/'));
});
当我运行时,我得到以下内容:
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var FlareCurrency={};exports.FlareCurrency=FlareCurrency;
为了它的乐趣,我想在控制台中运行它,是的我知道它什么也没做,但我没想到会看到这个:
Uncaught ReferenceError: exports is not defined(…)
非缩小版:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var FlareCurrency = {};
exports.FlareCurrency = FlareCurrency;
抛出相同的错误。的思想吗
答案 0 :(得分:43)
这实际上不是一个问题,你只是试图在浏览器中运行CommonJS代码(从ES6 export
转换而来)而没有准备。 CommonJS无法在浏览器上运行,您需要使用工具将其打包为浏览器,例如Webpack或Browserify。
本周巧合的是,我在Github上创建了一个小项目,显示了Gulp + ES6代码的设置(使用OnclientClick
)+ Babel + Webpack:gulp-es6-webpack-example。
在我的示例中,您可以同步(预加载)或异步(延迟加载)在浏览器上加载JS代码。