Babel 的 runtime 和 polyfill 到底有什么区别?
我最近在项目里用 Babel 转译代码,看到有 @babel/runtime 和 @babel/polyfill 两个东西,但搞不太清楚它们到底啥区别。
听说现在不推荐用 polyfill 了,改用 runtime,但我加了 @babel/plugin-transform-runtime 插件后,发现像 Promise、Array.from 这些还是报错,是不是还得手动引入 core-js?
我的 .babelrc 配置是这样的:
{
"plugins": [
["@babel/plugin-transform-runtime", {
"corejs": false,
"helpers": true,
"regenerator": true
}]
]
}
这样配的话,runtime 到底能处理哪些东西?是不是还得额外装别的包?有点懵……
这样就不用纠结 runtime 和 polyfill 的区别了,反正你都需要 core-js 来填坑。别忘了 npm install @babel/preset-env core-js --save-dev 啊,不然还是报错。