今天在做一个vue2项目时,引入了vuex做一些状态管理,结果调试发现在ie11以下页面显示不出来,打开控制台发现出现如下错误:
[vuex] vuex requires a Promise polyfill in this browser.
意思为vuex需要在这个浏览器上解析不了 因为vuex基于promise, IE浏览器没有内置Promise对象那么此时我们需要一个解析promise ES6语法的东西。不仅如此,几乎所有的ES6新增的方法在IE都不能用,比如Array.from。因为babel
只会转译语法,并不会新增方法。此时你需要babel Polyfill
polyfill
polyfill是一种js库,为低版本的js环境补足高版本js里定义的一些原生功能
用法十分简单如下:
1:下载
npm install --save babel-polyfill
2 :
方法一 :在main.js最顶部加入
import 'babel-polyfill';//解决ie浏览器不支持promise
方法二:或者在webpack中加入
module.exports = {
// entry: { // 这是原本脚手架配置的
// app: './src/main.js'
// },
entry: { // 替换成
app: ['babel-polyfill','./src/main.js']
},
}
这种需要重新npm run dev 因为更改了webpack的配置
两种加入方法都可以解决,个人建议第一种方便快捷,此时重新打开浏览器项目就能正常解析了。