我正在使用异步/等待代码而且我正在接收" regeneratorRuntime未定义错误"。我已经尝试了堆栈溢出的几个解决方案,但是我无法让它们中的任何一个工作。这是我的配置:
webpack.config.js:
module.exports = {
entry: ['babel-polyfill', './client/libs/compileTemplate/entry.jsx', './client/libs/compileTemplate/loginEntry.jsx'],
output: {
path: '/dist',
publicPath: '/assets',
filename: '[name].js'
},
plugins: plugins,
externals: {},
module: {
loaders: require('./webpack.config.loaders')
},
...
webpack.config.loaders.js:
module.exports = [
{
test: /\.jsx$/,
loader: 'babel',
query: {
presets: ['es2015', 'stage-0', 'react'],
}
},
];
的package.json: " devDependencies":{ " babel-core":" ^ 6.7.5", " babel-loader":" ^ 6.2.4", " babel-polyfill":" ^ 6.26.0", " babel-preset-es2015":" 6.16.0", " babel-preset-react":" 6.16.0", " babel-preset-stage-0":" ^ 6.24.1", " json-loader":" ^ 0.5.4", " less-loader":" 2.2.3" }
我还需要(" babel-core / register")在我的entry.jsx文件的顶部。
请让我知道我哪里出错了。
答案 0 :(得分:4)
好的,有几件事解决了我的问题。
1)npm i -S babel-preset-env babel-polyfill和我的webpack.config.js我添加了'env',它一举照顾es2015,es2016和es2017:
module: {
loaders: [
{ test: /\.jsx$/, loader: 'babel-loader', query: { presets: ['env', 'react'] } },
]
},
entry: [ './client/libs/compileTemplate/entry.jsx', './client/libs/compileTemplate/loginEntry.jsx'],
2)在我的entry.jsx中我有:
async function createSessionInfo() { // stuff here };
在webpack中悬挂在我的require('babel-polyfill')语句之上,因此我将其更改为:
require('babel-polyfill');
const createSessionInfo = async function() {
瞧,问题一去不复返了。哦,并确保你拥有最新的babel-core和babel-loader。
答案 1 :(得分:1)
Async / await不是es2015预设的一部分,您应该使用es2017或使用transform-async-to-generator和es2015