最近修改项目的兼容性,项目测试ie11兼容性时发现axios会提示promise未定义,在chrome下完全没毛病,怎么去到ie11就报promise未定义了呢?
翻了一轮axios的文档终于发现问题原因。
在ie11下直接使用axios会报Promise未定义,这是因为axios本质上是封装了ES6语法的promise,而promise在IE上并不兼容。
这时只需要引入babel-pollfile就行了。babel-polyfill相当于一个ES6的兼容垫片, 它会仿效一个完整的ES2015+环境,从而让某些浏览器也能读懂。
npm install --save babel-polyfill
然后在main.js的顶部引入import “babel-polyfill”; 最好给它最优先加载。
随后在build目录下webpack.config.js(如果你是vue-cli项目的话那就是build目录下webpack.base.conf.js)设置app载入babel-polyfill。
module.exports = {
entry: {
app: ["babel-polyfill",'./src/main.js']
}
}
添加完之后,刷新一下浏览器,promise未定义就消失啦!
作者:Elivs_欧元
链接:https://www.jianshu.com/p/33e5ec794d9a
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。