13

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

Object.defineProperty(exports, '__esModule', {

有任何想法吗?

4

2 回答 2

10

您很可能没有在支持 CommonJS 模块的环境中执行代码。您可以使用打包工具,例如Browserifywebpack ,将您的模块打包成可以在不同环境中运行的东西。

或者您可以选择不同的模块变压器


使用 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.

于 2015-04-03T15:32:10.137 回答
3

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

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

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

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

于 2016-07-03T22:01:18.173 回答