vue-cli2项目兼容IE

        在IE打开项目,控制台报错,如下:

以下罗列百度上vue项目兼容IE的方式(有说法项目最多兼容到IE9)

        方式一:安装babel-polyfill

        1、使用npm安装babel-polyfill(有说法不能安装在devDependencies,要装在dependencies)

        2、在文件入口main.js文件的顶部添加:import 'babel-poly'或者webpack.config.js或webpack-basse-config.js修改配置(有说法即要在main.js的顶部添加import 'babel-polyfill'也要修改配置),代码如下

        3、如果使用vuex,则在vuex的index.js文件中也要使用import "babel-polyfill",最好放在import Vuex from "vuex"的前面

        方式二:添加"<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>"

        方式三:报语法错误的,点击app.js查看语法错误位置,在引用位置找到对应的js,将js内的es6写法转成es5(前置条件是自己写的文件),如图(element UI报错)

        引用别人的插件则拆分引用,如

        方式四:webpack-dev-server版本太高,要将版本换成不高于2.6.1

        出现这个报错主要是因为项目使用了const等语法,然而IE2.6.1以下不兼容es6语法,不过这个问题只有在开发模式才出现,将项目打包放到服务器,就没有问题了。

        方式五:修改配置文件babelrc

        在.bablrc文件中增加"useBuilIns":"entry"

        方式六:IE浏览器autoprefixer自动补全css前缀无效

        IE发现使用内联样式,autoprefixer无法生效,要写到style标签内

        方式七:插件不兼容(例如vue-echarts)

        1、cnpm改为npm,npm i echarts vue-echarts -S

        2、npm I resize-detector -S

        3、vue.config.js文件写入

        个人操作:本人照着上面的操作将webpack-dev-server的版本为2.6.1,结果还是报错,去定位一下位置在

        显然是swiper插件的问题,百度swiper兼容IE,有说法是import直接引入swiper模块,保留了es6语法,试试"import swiper from 'swiper/dist/js/swiper.js'"(node_modules的swiper文件夹下swiper.js对应的文件),复制上去,保存代码的时候没有报上图的错误。在webpack-dev-server的版本是2.6.1,IE11和IE10(IE11浏览器仿真IE10)的效果会报这个错误:

控制台报错
报错对应的代码

        百度上说IE10、IE11的websocket的数量最多只能有6个,多余6个将报错,去除报错的方式

        方式一:

步骤一
步骤二
步骤三
步骤四

        个人做过尝试,可以,但是你总不能让用户自己去做配置

        方式二:

        改注册表目录HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer的内容(具体内容自行百度)

        没有做尝试,同第一点一样,对我来说不适用,暂时跳过,先做兼容IE9的内容

        在使用模拟的IE9环境下,会出现如下错误

        百度上说要安装classlist-polyfill-save,在webpack-base-config.js添加配置

        刷新页面后,可以了。

        自己有尝试将main.js引用的"import 'swiper/css/swiper.min.css'"改为"import 'swiper/css/swiper.css'",项目没有报错了,但是swiper的效果没有出来,个人用的swiper版本是5.3.9,我想又设计swiper5兼容IE9。

        在webpack-dev-server的版本是2.9.1,IE11完全没有问题,模拟的IE10,IE9环境下报错

控制台报错信息
对应报错的位置

        看来确实是webpack-dev-server.js版本的问题

        后续,在另一个项目要兼容IE9/IE10,发现只要@babel/polyfill,在配置想要的信息,就可以了

        1、安装npm install --save @babel/polyfill

        2、package.json中找到browserslist,配置

        3、在main.js引入@babel/polyfill

        4、在babel.config.js配置(公司使用renren-fast-vue的项目不用配置也可以)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容