编程语言
首页 > 编程语言> > javascript-从Babel 5迁移到6时出错(ReferenceError:未定义导出)

javascript-从Babel 5迁移到6时出错(ReferenceError:未定义导出)

作者:互联网

我正在使用Gulp和Babel将客户端es6代码编译为es5.升级后,我在浏览器中收到此错误:
未捕获ReferenceError:未定义导出

发生此错误的原因是Babel将我的客户端脚本编译为CommonJS模块,并在每个文件的开头添加以下行:

Object.defineProperty(exports, "__esModule", { // <-- ReferenceError: exports is not defined
  value: true
});

但是我没有在客户端上使用任何UMD / CommonJS模块加载器,因此此代码会导致错误.使用Babel 5,为避免这种情况,我在gulpfile中使用了选项模块:’ignore’:

return gulp.src(src, {base: 'src'})
   .pipe(babel({
        modules: 'ignore' // <-- dropped from Babel 6
   }))
   .pipe(gulp.dest(dest));

因此它按原样和清晰地编译了我的脚本.但是此选项已从Babel 6中删除,现在导致错误
[ReferenceError:[BABEL] .. myscript.js:未知选项:base.modules]
,因此我不得不对此行发表评论.

除模块外,还有其他替代方法:Babel 6中的“ ignore”吗?

解决方法:

由于您使用的是es2015 this set of plugins,因此默认情况下已启用.请注意,其中有babel-plugin-transform-es2015-modules-commonjs.

如果您不想执行任何类型的模块转换,则需要显式列出您要使用的插件,而不是使用es2015.

标签:babeljs,javascript
来源: https://codeday.me/bug/20191027/1945649.html