当此代码(由babel生成)运行时,我收到错误exports is undefined
Object.defineProperty(exports, '__esModule', {
任何想法?
答案 0 :(得分:10)
您很可能不在支持CommonJS模块的环境中执行代码。您可以使用捆绑工具,例如Browserify或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
命令将转换通过babel的条目文件可到达的所有*.js
个文件,并将它们捆绑到bundle.js
。
答案 1 :(得分:3)
我读了一篇关于ES6导入和导出如何仅在浏览器中使用“静态可分析文件”的文章,并且Babel因此删除了浏览器中的导入和导出支持。与异步或可能的安全性有什么关系?
如果您想跳过用于开发目的的服务器端捆绑,可以输入
底部的 window.MyModule = MyModule
,然后导入
var MyModule = window.MyModule
位于下一个文件的顶部