考虑以下示例代码(也许我做错了?)
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;
抛出相同的错误。 有什么想法吗?
gulp
/webpack
)就可以全部解决。但是现在我意识到这并不正确。虽然我知道CommonJS模块不能在浏览器中使用,但我认为babel应该会处理这个问题。但事实证明,babel可以处理大部分es6,但不能处理模块。而且仅使用gulp也没有帮助。我之前使用webpack做到了一些东西,但因为它与服务器端代码兼容性不好,所以我试图替换它。但显然,即使我使用gulp,也需要从gulp调用webpack。唉! - Jayesh