vue-cli 项目兼容ie浏览器的方法

时间:2022-12-02 07:58:09

问题描述

ie11打开vue2.0项目空白,控制台报错
vuex requires a Promise polyfill in this browser;

原因

Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API ,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转码。为了解决这个问题,我们使用一种叫做 Polyfill(代码填充,也可译作兼容性补丁) 的技术。

简单地说,polyfill即是在当前运行环境中用来复制(意指模拟性的复制,而不是拷贝)尚不存在的原生 api 的代码。

解决办法

首先

安装babel-polyfill
npm install babel-polyfill --save-dev

入口文件引用

main.js中引用
import 'babel-polyfill'

vue-cli 配置修改

如果也是用了官方脚手架vue-cli,还需要在webpack.config.js配置文件中做各修改,用
module.exports = {
entry: {
app: ["babel-polyfill", "./src/main.js"]
}
};

替代
module.exports = {
entry: {
app: './src/main.js'
}
}

如果有多配置可以在webpack.base.config.js修改

参考文章:https://www.jianshu.com/p/7ba32fb7149e