为什么要用polyfill
babel帮我们编译es6语法,但是像Promise、async、await...这些语法是编译不了的,那么我们就得用到polyfill了。
安装及配置
npm i @babel/polyfill复制代码
.babelrc{ "presets": [ ["@babel/preset-env", { // 按需注入 "useBuiltIns": "usage", "corejs": 2 // 这里需要注意:是根据你的版本来写 }] ]}复制代码
需要注意的是我这里没有写基础的babel安装和配置,自行安装~
@babel/plugin-transform-runtime
当我们开发的是组件库、工具库这些场景polyfill就不合适了,因为polyfill是注入到全局变量window下的,会污染全局环境,所以推荐闭包方式:@babel/plugin-transform-runtime
安装及配置
npm i -D @babel/plugin-transform-runtimenpm i @babel/runtime @babel/runtime-corejs2复制代码
// .babelrc { "plugins": [ [ "@babel/plugin-transform-runtime", { "corejs": false, "helpers": true, "regenerator": true, "useESModules": false } ] ]}复制代码
试试~