关于babel7:如何添加-babel-polyfill
因为 Babel 7.4 之后不再举荐应用 @babel/polyfill,而 @babel/preset-env 和 plugin-transform-runtime 二者都能够设置 corejs 来解决 polyfill。 @babel/polyfill废除的次要起因有: 此包仅仅是引入了 stable core-js 和 regenerator-runtime/runtime,其中后者能够应用插件 @babel/plugin-transform-regenerator 代替。此包不能从core-js@2 平滑过渡到 core-js@3。Babel 简介简略来说,Babel 是一个编译器,次要用于将采纳 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便可能运行在新旧版本的浏览器等各个环境中。而 Babel 代码转换性能以 plugin 的形式实现,plugin 就是小型的 JavaScript 程序。 preset能够被看作是一组 Babel 插件或 options 配置的可共享模块。 plugins 在 presets 前运行;plugins 从前往后程序执行;presets 依据排列程序倒序执行;babel 次要实现的两个性能:转换新语法。将新版 js 语法用旧版语法实现,从而在对应环境中运行,比方箭头函数;转换新 API。为旧版运行时打补丁(也被称为polyfill),从而应用在新版 js 中定义但在旧版运行时提供的性能,包含三类: 新定义的内置对象,例如 Promise原有内置对象新增加的静态方法,例如 Array.from原有内置对象新增加的实例办法,例如 Array.prototype.includespreset-envpreset-env 既能够转换新语法,也能够通过配置转换新的 API。preset-env 的 polyfill 会净化全局环境。 target这个字段能够填写 browserslist 的查问字符串,官网举荐应用 .browserslistrc 文件去指明编译的 target,这个配置文件还能够和autoprefixer、stylelint等工具一起共享配置。所以不举荐在.babelrc的preset-env配置中间接应用targets进行配置。 如果须要独自在这里配置targets的话,preset-env中指明ignoreBrowserslistConfig为true则疏忽.browserslistrc的配置项。useBuiltIns是否应用其polyfill性能(全局环境的core-js)。有三个值: ...