- 网上许多解决方案都说IE需要安装 @babel/polyfill
yarn add @babel/polyfill --dev
- main.js引入
import '@babel/polyfill';
- 配置文件中设置
网上搜到一般都是 webpack 的 config 文件中配置入口文件
module.exports = {
entry: {
app: ['babel-polyfill', './src/main.js']
},
}
但是我用的 Vue2.6.10, 默认没有 webpack 的配置文件,后来发现是 babel 的设置项,就在 babel.config.js 中设置的(也可以在 .babelrc 中设置)
module.exports = {
presets: [
[
'@vue/app', {
useBuiltIns: 'entry',
polyfills: [
'es6.promise',
'es6.symbol',
'es6.array.find-index',
'es7.array.includes',
'es6.string.includes',
]
},
]
]
};
但是依然报错
- 还有说是function的参数设置了默认值
修改 function(name=”test”) 为 function(name)
依然报错
上面两种修改后,只是错误的报错行数不一样了
这次点开错误,发现报错位置在 resize-detector 的文件中
- 最终,新建vue.config.js,设置依赖包的语法转译
module.exports = {
transpileDependencies: ['resize-detector']
}
IE中页面终于出现了
transpileDependencies 中的设置项,根据自己的项目需要来设置
后记:
- 网上搜到了另一个bable的设置方法,还没测试,先记录下来”stage-3″
entry
– 根据浏览器版本的支持,将 polyfill 需求拆分引入,仅引入有浏览器不支持的polyfill
{
"presets": [
[
"env",
{
"useBuiltIns": "entry"
}
],
"stage-3"
]
}
参考:
Vue CLI 浏览器兼容性