IntroductionBabel的官方文档中提到:Babel的作用是将ECMAScript2015+版本的代码转换为向后兼容的JavaScript语法,使其可以在当前和旧版本的浏览器或其他环境上运行。但是babel引入的@babel/preset-env只能转换ECMAScript2015+的语法,无法处理一些缺失的API,比如IE不支持的promises和url。对于这些缺失的API,可以通过Polyfill(通过@babel/polyfill模块)将它们添加到目标环境中。而core-js是@babel/polyfill的底层依赖。core-js提供了es6polyfills,也就是说使用babel/polyfill间接引入了core-js标准库。在VueCLI中,如果你的项目是使用VueCLI3及以上版本创建的,则无需引入@babel/polyfill即可轻松兼容IE。在VueCLI的官方文档中说:一个默认的VueCLI项目会使用@vue/babel-preset-app作为babel的preset。在package-lock.json中可以看到预设的@vue/babel-preset-app也依赖于core-js。在@vue/babel-preset-app的文档中可以找到polyfills选项,表示可以在该选项中添加core-js相关模块来支持IE。core-js的模块名称可以在文档中找到。在此处添加对IE的Promise、URL、URLSearchParams支持://babel.config.jsmodule.exports={presets:[['@vue/app',{polyfills:{'es.promise','web.url','web.url-search-params'}}]]}这样就可以愉快的兼容辣了~滑~
