1、引入 babel-polyfill
具体引入方法参考:参考链接
2、解决element-ui兼容问题
build文件夹下的 webpack.base.conf.js
在include里添加resolve('node_modules/element-ui/packages'),resolve('node_modules/element-ui/src')
3、设置默认ie版本
在index.html中添加
<meta http-equiv="X-UA-Compatible" content="IE=edge">
支持最高版本ie。
4、对于其他插件的兼容性问题
如本项目用到了vue-awwsome-swiper@4.1.1基于swiper5.4.1。发现有兼容性问题。目前解决办法:降低vue-awesome-swiper的版本。暗转vue-awesome-swiper@2.6.7。
如何识别呢,一般浏览器控制台会出现1010、5007等错误。这些错误通常都是浏览器不认识某些js语法导致的。
5、特别注意
① vue只支持ie8以上版本
②为什么要使用babel-polyfill?
1、 ie内核的浏览器对于js语法的新特性兼容性不行。
2、通常babelBabel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比如Iterator、Generator、Set、Map、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。举例来说,ES6 在Array对象上新增了Array.from方法。Babel 就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。
3、项目里用了第三方elementUi 但是 babel处理的时候 并没有处理node_modules。通过配置可让其处理。可是有些通过resolve解决不了(看第2点),只能寻求能适配的插件了。