vue项目兼容ie浏览器

注意:

  1. vue 只兼容ie8以上版本;
  2. IE 不兼容 axios的promiss对象;
  3. IE 不兼容es6语法;
  4. ES6转ES5

一、关于babel-polyfill

1、说明:This will emulate a full ES2015+ environment and is intended to be used in an application rather than a library/tool. This polyfill is automatically loaded when using babel-node.(模拟ES2015以上的环境,主要用于对ES6新语法不支持的浏览器);

2、安装:npm install –save babel-polyfill;

3、配置:module.exports = { entry: [“babel-polyfill”, “./src/main.js”] };

4、main.js中配置:import ‘babel-polyfill’ //放在最顶部,确保全面加载。

二、关于es6-promise

1、说明:若在项目中使用了ES6 promise对象,它在Chrome、Safari浏览器下可以正常运行,但在360兼容模式、IE内核中不支持;

2、安装:npm install es6-promise;

3、配置:在main.js中加入require(‘es6-promise’).polyfill(),用于在node或浏览器中支持ES6 与CommonJS。

三、步骤详细图
1、index引入这句话或者这三句话

《vue项目兼容ie浏览器》

2、执行npm install --save babel-polyfill;
执行完上面语句package.json里面就有了这个依赖(检查2部是否执行完成的一个结果)

 《vue项目兼容ie浏览器》

3、在main.js最上面引入,确保加载进去。

《vue项目兼容ie浏览器》

4、修改webpack.base.conf.jswe文件中entery里面的内容改成下图那样

《vue项目兼容ie浏览器》

将里面内容替换为

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

四、可能会出现的问题:

当把这些攻略都做了一遍后,发现打包完的360的急速模式可以了(本地运行还是不可以),但是!!!ie浏览器,360兼容模式,不管打包还是没打包,都不能显示,完全没有加载进去数据,

控制台问题如图:

《vue项目兼容ie浏览器》
查询后发现,是因为IE没有这个方法,不支持sessionStorage,解决的方法是:IE本地调试用cookie,或者用webstrom打开项目,但我确实用的webstorm打开的项目,还是不可以,后来找到解决方法,要把es6转es5

转换语句:npm i babel-preset-es2015
并且在项目的根目录下,修改.babelrc的内容,添加'es2015'

注:若无.babelrc文件,可自行添加一个

《vue项目兼容ie浏览器》

发现不报未定义的错了,开始报下图的错

《vue项目兼容ie浏览器》

安装 npm i classlist-polyfill,并且在webpack.base.conf.js中,添加'classlist-polyfill'

 《vue项目兼容ie浏览器》

然后,npm run dev,居然可以了适配了。

 

    原文作者:雨c.
    原文地址: https://blog.csdn.net/weixin_43997462/article/details/116493118
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞