1. 程式人生 > >IE瀏覽器報Promise未定義

IE瀏覽器報Promise未定義

npm ins 目錄 mis andriod app sig all array對象

用vue-cli做的項目,用了promise,結果IE下報promise未定義,甚至在比較老的andriod手機瀏覽器上會顯示空白頁面,解決方案如下:

首先安裝:babel-polyfill

npm install babel-polyfill --save

然後引入:babel-polyfill

在build目錄下,webpack.base.conf.js裏

entry: {

app: ["babel-polyfill", "./src/main.js"]

},

即可。

【說明】vue-cli項目裏默認有babel轉碼器,但是:

Babel 默認只轉換新的 JavaScript 句法(syntax),而不轉換新的 API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局對象,以及一些定義在全局對象上的方法(比如Object.assign)都不會轉碼。

舉例來說,ES6 在Array對象上新增了Array.from方法。Babel 就不會轉碼這個方法。如果想讓這個方法運行,必須使用babel-polyfill,為當前環境提供一個墊片。

IE瀏覽器報Promise未定義