【问题标题】:Babel generated code causes error exports is undefinedBabel 生成的代码导致错误导出未定义
【发布时间】:2015-04-03 15:21:00
【问题描述】:

当这段代码(从 babel 生成)运行时,我收到错误 exports is undefined

Object.defineProperty(exports, '__esModule', {

有什么想法吗?

【问题讨论】:

    标签: ecmascript-6 babeljs


    【解决方案1】:

    您很可能没有在支持 CommonJS 模块的环境中执行代码。您可以使用捆绑器,例如 Browserifywebpack 将您的模块捆绑到可以在不同环境中运行的东西中。

    或者您可以选择不同的module transformer


    使用 webpack

    运行npm install -g webpack; npm install -D babel-loader。然后使用这个 webpack 配置:

    // webpack.config.js
    module.exports = {
        entry: "./path/to/entry/module.js",
        output: {
            path: __dirname,
            filename: "bundle.js"
        },
        module: {
          loaders: [
            { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}
          ]
        }
    };
    

    运行webpack 命令将使用 babel 转换所有通过入口文件可访问的*.js 文件,并将它们捆绑到bundle.js 中。

    【讨论】:

    【解决方案2】:

    我阅读了一篇文章,介绍了 ES6 导入和导出如何仅适用于具有“静态可分析文件”的浏览器,因此 Babel 删除了浏览器中的导入和导出支持。与异步或可能的安全性有关?

    如果你想为了开发目的跳过服务器端捆绑,你可以把

    window.MyModule = MyModule在底部,然后导入

    var MyModule = window.MyModule 在您下一个文件的顶部

    【讨论】:

      猜你喜欢
      • 2019-04-27
      • 2023-01-05
      • 2017-11-17
      • 2022-01-05
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2021-10-27
      相关资源
      最近更新 更多