使用背景
因为做的项目会在IE环境下运行的情况,按正常vue支持来说,IE8+应该是支持的,可是ES6写法需要进行兼容,否则项目在IE中无法打开,空白,也报一些 未定义什么的错误。
这时候就需要兼容ie,将es6转为es5后使用
1、安装依赖
npm install babel-polyfill es6-promise -s
2、在main.js首行引入
import 'babel-polyfill'
import promise from 'es6-promise'
promise.polyfill()
3、在babel.config.js修改presets,内容如下:
presets: [
[
'@vue/app',
{
useBuiltIns: 'entry',
polyfills: ['es6.promise', 'es6.symbol']
}
]
],
4、在package.json最后加上;或者.browserslistrc文件not内容改为ie<10
"browserslist": [
"> 1%",
"last 2 versions",
"not ie<10"
]
5、在vue.config.js中添加配置
在module.exports 外面加上
```javascript
var path = require('path')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
在module.exports 里面加入配置
transpileDependencies: [
/node_modules/
],
chainWebpack(config){
config.entry.app = ["babel-polyfill","./src/main.js"];
config.module.rule('compile')
.test(/\.js$/)
.include
.add(resolve('src'))
.add(resolve('test'))
.add(resolve('node_modules/webpack-dev-server/client'))
.add(resolve('node_modules'))
.end()
.use('babel')
.loader('babel-loader')
.options({
presets:[
['@babel/preset-env',{
modules:false
}]
]
})
},
备注:如果使用了sockjs-client,需要将sockjs-client 降级安装 npm i sockjs-client@1.5.1 -D