使用webpack和babel编译代码,支持IE11的时候报错,
原因就是,在babel转译的时候没有core-js排除,babel吧core-js也给转译了一遍出现了错误,core-js不需要babel的再次转译。
检查一下webpack的babel-loader的配置,看看有没有吧core-js给排除掉。
module: {
rules: [
{
test: /\.m?js$/,
// 之前是因为这里的正则表达式写错了。
// exclude: /(node_modules[\\/][^dtc]|bower_components)/,
exclude: [{
and: [/node_modules[\\/]/], //排除node_modules文件夹下面的所有文件
not: [
// 但是不排除下面的文件,因为他们使用了IE11不支持的语法。
/debug[\\/]/,
]
}],
use: {
loader: 'babel-loader',
options: {
cacheDirectory: true,
},
}
},
webpack5热更新失效
webpack5通过target告知 webpack 目标(target)环境。默认值为 “browserslist”,如果没有找到 browserslist 的配置,则默认为 “web”,所以删除browerslist 相关配置的时候,热更新也会恢复。
这部分应该是webpack 什么的有bug 相关issue
暂时可以这么写
// webpack.config.js
target: process.env.NODE_ENV === "development" ? "web" : "browserslist",