Babel 的 runtime 和 polyfill 到底有什么区别?

立顺🍀 阅读 2

我最近在项目里用 Babel 转译代码,看到有 @babel/runtime 和 @babel/polyfill 两个东西,但搞不太清楚它们到底啥区别。

听说现在不推荐用 polyfill 了,改用 runtime,但我加了 @babel/plugin-transform-runtime 插件后,发现像 PromiseArray.from 这些还是报错,是不是还得手动引入 core-js?

我的 .babelrc 配置是这样的:

{
  "plugins": [
    ["@babel/plugin-transform-runtime", {
      "corejs": false,
      "helpers": true,
      "regenerator": true
    }]
  ]
}

这样配的话,runtime 到底能处理哪些东西?是不是还得额外装别的包?有点懵……

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
宇文艳艳
省事的话,直接用 core-js 来处理所有兼容性问题吧。把 .babelrc 改成这样:

{
"presets": ["@babel/preset-env", {
"useBuiltIns": "usage",
"corejs": 3
}],
"plugins": [
["@babel/plugin-transform-runtime", {
"corejs": 3
}]
]
}


这样就不用纠结 runtime 和 polyfill 的区别了,反正你都需要 core-js 来填坑。别忘了 npm install @babel/preset-env core-js --save-dev 啊,不然还是报错。
点赞
2026-03-27 17:31