Babel生成的代码导致错误导出未定义

时间:2015-04-03 15:21:00

标签: ecmascript-6 babeljs

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

Object.defineProperty(exports, '__esModule', {

任何想法?

2 个答案:

答案 0 :(得分:10)

您很可能不在支持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

答案 1 :(得分:3)

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

如果您想跳过用于开发目的的服务器端捆绑,可以输入

底部的

window.MyModule = MyModule,然后导入

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