vue-cli3配置IE浏览器兼容性

更新日期: 2019-05-19阅读: 8.4k标签: 兼容

最近,在重构公司官网,需要兼容ie9/10/11,使用vue-cli构建项目。在查询如何兼容ie时,首先是查看vue cli官网,浏览器兼容性,感觉官网说的不是太明晰(小白一枚,实在不太懂),然后就直接百度了,网上方法基本类似,都是用 browserslist,babel-polyfill等,只是具体步骤有差异,不过 都没有解决本人问题。经过层层查询,逐步对vue-cli 原理了解后,网上查询方法结合本人理解,将问题解决,在此记录下。

先说步骤,然后说一些自己浅显理解。


一.解决步骤

1.配置browserslist

配置这一项,有两个途径,一是 在 package.json文件中,添加browserslist字段;二是 在项目根目录,创建一个.browserslistrc文件,两种途径。这两种方法不能同时配置,不然运行serve命令会报错。

先说package.json中配置,网上很多如下方法:

"browserslist": [
    "> 1%",
    "last 4 versions"
  ]

本人依此配置,报错!然后按照另外一种配置,如下:

    "browserslist": [
        "ie 11"
      ]

成功!

额外贴出.browserslistrc方法配置方式(只是列出书写方式,代码有效性,按上面来):

> 1%
last 4 versions


2.安装babel-polyfill依赖

这个简单,直接 npm i babel-polyfill --save-dev即可

3.引入babel-polyfill依赖

这一步是关键,网上查询很多,在main.js中,import babel-polyfill引入,本人测试后无效。

具体引入是在vue.config.js中configurewebpack字段中,具体:

 configureWebpack: config => {
    config.entry.app = ["babel-polyfill", "./src/main.js"];
 }

即在webpack入口配置中,加入babel-polyfill。至此,在ie下,兼容es6就解决了!


二.自己的理解

上面把问题解决了,再将自己解决过程中的理解梳理下。

1.首先上面的解决步骤,仅仅适用于源码(/src),对依赖包无效。当需要对依赖包做兼容转译时,就需要用到官网中Polyfill部分内容了

2.vue-cli中webpack配置文件是在node_modules中的,没有直接在根目录,要想配置webpack,需要在vue.config.js中configureWebpack字段或者chainWebpack配置。具体如下:

module.exports = {
  configureWebpack: {
    resolve: {
      alias: {
        querystring: 'querystring-browser'
      }
    }
  }
}
module.exports = {
  chainWebpack: config => {
    config.resolve.alias.set('querystring', 'querystring-browser')
  }
}

链接: https://www.fly63.com/article/detial/3782

CSS/CSS3常用的样式兼容,样式总结

这篇文章主要介绍了css中常用但是又难记的样式作为总结,方便大家学习和使用。包括了‘单行缩略号‘、’css圆角兼容’、‘元素阴影’,‘border取消宽度影响’,‘css3的背景渐变’,‘css的透明’等等

CSS3 nth-child的使用,详解css中nth的作用,以及nth-child的兼容写法

:nth-child是css3的一个比较常用的选择器。它用于匹配属于其父元素中的子元素,不论元素的类型。 它的参数可以是数字、关键词或公式。

CSS 3中-webkit-, -moz-, -o-, -ms-这些私有前缀的含义和兼容

css3作为页面样式的表现语言,增加了很多新的属性,但是部分css3属性在一些浏览器上还处于试验阶段,所以为了有效的显示css3的样式,对应不同的浏览器内核需要不同的前缀声明。

css定义变量_css原生变量的使用和兼容 附带还有更高性能,文件更高压缩率的好处

在开发中,css样式有一些属性往往需要重复使用,为了避免代码冗余,降低维护成本。我们需要使用CSS预编译工具【Sass/Less/Stylus】,随着这些工具的流行,CSS变量也开始规范制定,目前很多浏览器都已经支持了

caniuse.com_判断浏览器对css3、html5的兼容性测试工具

caniuse.com 是一个工具性的网站,帮助人们了解各个浏览器以及它们的不同版本对 HTML5、CSS3 等高级特性的支持情况。直接在上面的输入框中输入想要搜索的属性。然后结果就直接出来了。

web浏览器在线兼容性测试工具_检测html网页在不同浏览器上的兼容问题

对于web前端开发者而言,为了确保html代码在不同浏览器上能正常工作,是一件很麻烦的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,下面就为大家推荐一下比较流行的web浏览器在线兼容性测试工具。

原生js兼容写法_在ie标准下的兼容性写法

经常使用原生js,就要考虑到一些浏览器上的兼容,尤其是IE,下面就整理关于js的一些兼容性写法

解决IE不兼容document.getElementByClassName()的实现方法

在使用原生js时候,需要通过class样式名来获取dom对象,发现在IE8以下是不支持document.getElementByClassName()这种方法的。那么我们如何来实现获取classname的兼容写法呢?

es6之解构赋值

es6的语法已经出了很长的时间了,在使用上也可以通过babel这类的编译工具转译为浏览器可以识别的es5的语法,这篇文章主要会介绍解构赋值基本用法以及在实际使用场景中相比es5语法的优势

document.head.appendChild(element) 在 IE8 及以下报错

问题:在开发中会遇到动态添加 script 标签的情况。但是在 IE8 以下会报如下错误:SCRIPT5007: Unable to get value of the property appendChild: object is null or undefined,解决办法如下

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!