在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';