可以从以下四个方面理解core-js
core-js 最新也是推荐版本为 core-js@3, 其又分为三个包
侵入性最小,工程化、自动化程度最高,业务影响最低
手动打补丁
es5-shim
es6-shim
Babel-polyfill结合@babel/preset-env + useBuiltins(entry) + preset-env targets 的方案
{"presets": [["@babel/env", {useBuiltIns: 'entry',target: { chrome: 44 }}]]}
在工程代码处这样引用
import '@babel/polyfill'
会被编译为
import "core-js/xxxx/xxxx"import "core-js/xxxx/xxxx"
在线动态打补丁
一个趋于完美的 polyfill 设计应该满足的核心原则是按需加载补丁