编程语言
首页 > 编程语言> > javascript – gulp babel,导出未定义

javascript – gulp babel,导出未定义

作者:互联网

考虑以下示例代码(也许我做错了?)

 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;

抛出同样的错误.想法?

解决方法:

这实际上不是一个问题,你只是试图在浏览器中运行CommonJS代码(从ES6导出转换而来)而没有准备. CommonJS不在浏览器上运行,您需要使用工具将其打包为浏览器,例如WebpackBrowserify.

巧合的是,本周我在Github上创建了一个小项目,显示了Gulp ES6代码的设置(使用导出)Babel Webpack:gulp-es6-webpack-example.

在我的示例中,您可以同步(预加载)或异步(延迟加载)在浏览器上加载JS代码.

标签:javascript,ecmascript-6,gulp,babeljs,ecmascript-5
来源: https://codeday.me/bug/20190926/1818015.html