webpack中,一般需要使用babel進(jìn)行代碼轉(zhuǎn)譯。首先安裝以下babel相關(guān)的npm包:
npm i -D babel-loader @babel/core @babel/preset-env
然后在module.rules 里面配置:
{
test: /\.js$/i,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
此時(shí),可以進(jìn)行大部分es6代碼轉(zhuǎn)換,比如箭頭函數(shù),但async/await依然不能轉(zhuǎn)換??刂婆_(tái)報(bào)錯(cuò)如下:
Uncaught ReferenceError: regeneratorRuntime is not defined
at _hello (hello.js:10:16)
at hello (hello.js:10:16)
at Object../src/hello.js (hello.js:15:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at Module../src/main.js (hello.js:15:6)
at __webpack_require__ (bootstrap:24:1)
at startup:6:1
at startup:6:1
支持async/await
繼續(xù)安裝以下npm包
npm i -D @babel/runtime
npm i -D @babel/plugin-transform-runtime
繼續(xù)添加配置:
{
test: /\.js$/i,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: [
['@babel/plugin-transform-runtime']
]
}
}
}
ok, async/await就可以轉(zhuǎn)譯了