Babel 生成的代码导致错误 exports is undefined

Babel generated code causes error exports is undefined

运行此代码(从 babel 生成)时出现错误 exports is undefined

Object.defineProperty(exports, '__esModule', {

有什么想法吗?

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

或者您可以选择其他 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 命令将转换所有 *.js 可通过带有 babel 的入口文件访问的文件,并将它们捆绑在一起成为 bundle.js.

我读了一篇关于 ES6 导入和导出如何只能在浏览器中使用 "statically analyzable files" 的文章,因此 Babel 删除了浏览器中的导入和导出支持。与异步或可能的安全性有关?

如果出于开发目的而想跳过服务器端捆绑,可以将

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

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