在网上看了很多,有些不全,有些不知所云(也可能是我太菜看不懂),有些太旧了,有些太复杂了,其实现在vue2兼容IE不用那么麻烦
第一步:在package.json中
"browserslist": [
"> 1%",
"last 3 versions",
"not ie <=8"
]
使用 npx browserslist 命令可以查看当前打包兼容哪些浏览器
npx browserslist
browserslist相关配置自行百度,反正不要加not dead就行
第二步:在vue.config.js中(没有就在根目录创建一个)
module.exports = {
parallel: false,
devServer: {
proxy: {
'/1api': {
target: 'http://xxx.xxx.com',
pathRewrite: { '^/1api': '' },
changeOrigin: true
},
'/2api': {
target: 'http://xxx.xxx.com',
pathRewrite: { '^/2api': '' },
changeOrigin: true
},
}
},
lintOnSave: false,
publicPath: './',
transpileDependencies:['swiper','element-ui','axios','vue-weixin-emojis','vuex','vue-router','core-js','sockjs-client']
}
其中publicPath是因为router要使用hash模式,ie不支持history模式
router/index.js
const router = new VueRouter({
routes
})
transpileDependencies是将依赖中的es6语法改为es5,默认打包是不管依赖中的es6语法的
具体值为package.json中dependencies的值
"dependencies": {
"axios": "^1.1.3",
"babel-polyfill": "^6.26.0",
"core-js": "^3.6.4",
"element-ui": "^2.15.12",
"swiper": "^3.4.2",
"vue": "^2.6.11",
"vue-router": "^3.1.6",
"vue-weixin-emojis": "^0.1.13",
"vuex": "^3.1.3"
},
选择其中含有es6语法的依赖加入transpileDependencies中即可,如果不清楚可以一个一个试,尝试方法为先全部加入transpileDependencies,然后再一个一个删了打包看有没有语法错误o(╯□╰)o
以上为本人在实际开发中总结出来的经验,如果有问题你打我嘛可以探讨