当这段代码(从 babel 生成)运行时,我得到一个错误exports is undefined
Object.defineProperty(exports, '__esModule', {
有任何想法吗?
当这段代码(从 babel 生成)运行时,我得到一个错误exports is undefined
Object.defineProperty(exports, '__esModule', {
有任何想法吗?
您很可能没有在支持 CommonJS 模块的环境中执行代码。您可以使用打包工具,例如Browserify或webpack ,将您的模块打包成可以在不同环境中运行的东西。
或者您可以选择不同的模块变压器。
使用 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 导入和导出如何仅在具有“静态可分析文件”的浏览器中工作的文章,因此 Babel 删除了浏览器中的导入和导出支持。与异步或可能的安全性有关?
如果你想为了开发目的跳过服务器端捆绑,你可以把
window.MyModule = MyModule
在底部,然后导入
var MyModule = window.MyModule
在下一个文件的顶部