一、前言
开发vue项目过程中,在development模式下发现在IE10,、IE11中无法运行,打开控制台发现已经报错。错误信息提示语法错误,打开定位到的报错位置,可以发现是严格模式报错。编译的代码中出现严格模式可能是因为代码中存在es6而没有被转换为es5,而在项目中已经配置了babel;正常情况下是不会出现es6未被转换的情况的。
由于babel配置采用的是vue官方推荐的或者说vue官方默认的方案,那么是不是这个方案存在什么问题呢。
打开vue-cli官方文档,在其文档中看到这样的描述:
可以看到,默认情况下useBuiltIns的值为usage,而这种情况下如果项目中引入的依赖包需要特殊的polyfill是无法被检测出来的。那么可以肯定的是问题出自引用的依赖包中的代码包含高版本的es语法的特性而没有被检测出来进行polyfill。
二、解决方案
要解决这个问题可以通过引入browserslist包含的目标的
所有polyfill。
1、安装babel/polyfill依赖包,如果已经安装