最近修改項目的兼容性,項目測試ie11兼容性時發(fā)現(xiàn)axios會提示promise未定義遏片,在chrome下完全沒毛病,怎么去到ie11就報promise未定義了呢笔呀?
翻了一輪axios的文檔終于發(fā)現(xiàn)問題原因髓需。
在ie11下直接使用axios會報Promise未定義,這是因為axios本質(zhì)上是封裝了ES6語法的promise,而promise在IE上并不兼容。
這時只需要引入babel-pollfile就行了搭幻。babel-Polyfill相當于一個ES6的兼容墊片, 它會仿效一個完整的ES2015+環(huán)境逞盆,從而讓某些瀏覽器也能讀懂。
npm install --save babel-polyfill
然后在main.js的頂部引入import "babel-polyfill";?最好給它最優(yōu)先加載纳击。
隨后在build目錄下webpack.config.js(如果你是vue-cli項目的話那就是build目錄下webpack.base.conf.js)設(shè)置app載入babel-polyfill。
module.exports = {
????entry: {
????????????app: ["babel-polyfill",'./src/main.js']
????}
}?
添加完之后纱昧,刷新一下瀏覽器,promise未定義就消失啦!
babel-polyfill官網(wǎng)https://babeljs.io/docs/en/babel-polyfill/