支持ie,就是js语法转换问题(es6 => es5),需要babel-loader, 所以需要修改webpack配置
在config.js里添加配置:
configureWebpack: (config, isServer) => {
if(!isServer) {
config.module.rules.push({
test: /\.js$/,
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
});
//添加polyfill
const file = config.entry.app[0];
//此处也可用@babel/polyfill (应该会稍微新一点,支持的语法多点,因为体积好像大点)
config.entry.app = ['babel-polyfill', file]
}
}
然后把用到的插件安装一下:npm i babel-loader '@babel/core' '@babel/preset-env' babel-polyfill -D
通过查资料,发现上边所述配置已经过时了,通过详细配置@babel/preset-env
,可以实现按需引入,
大致是这么写:
test: /.js$/i,
exclude: /node_module/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
useBuiltIns: 'usage',
corejs: 3
}
]
],
}
}
但是我用到vuepress里报错,看报错大概原因是,exclude: /node_module/, 这个配置,如果用了这个配置,那么依然会有语法没有被转换成功,去掉这个配置,会导致/node_modules/里的代码在转换时报错
具体可参考:https://blog.csdn.net/weixin_50794208/article/details/130830275
https://www.cnblogs.com/lijun12138/p/16163421.html