前言
因為工作的需要,學習Vue2.0也有一段時間,最近在用Vue2.0的官方腳手架工具構建的項目,chrome中跑一直沒有問題,但ie打開出現了bug:
問題
ie打開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安裝 npm install --save-dev babel-polyfill 或 cnpm install --save-dev babel-polyfill
在main.js導入即可 import 'babel-polyfill'
如果也是用了官方腳手架vue-cli,還需要在webpack.config.js配置文件中做各修改,用
module.exports = {
entry: {
app: ["babel-polyfill", "./src/main.js"]
}
};
替換
module.exports = {
entry: {
app: './src/main.js'
}
}
至此,問題解決!
