在webpack中,babel只能转换新的语法,如将es6转为es5,jsx转为js等,但但是无法处理新的api,如promise等,这时候就需要依赖polyfill。
polyfill可以理解为补丁的意思,用于实现浏览器不支持的原生的api代码。
polyfill的使用:
1.babel7.4之后,单独引入core-js和regenerator-runtime来使用
2.配置babel.config.js
preset: [ ["@babel/preset-env", { useBuiltIns: "usage"‘ corejs: 3.8 }] ]
useBuiltIns有三个属性值
false : 打包的文件不需要polyfill来进行适配
usage : 根据源代码中出现的语言特性,自动检测所需要的polyfill,设置corejs属性来确定使用corejs的版本
entry : 当我们依赖的某个库本身就用了polyfill,如果使用usage可能会导致浏览器报错,这时候就可以使用entry,并且入口文件处添加
import ‘core-js/stable’; import ‘regenerator-runtime/runtime‘;