You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2021年如何在Babel中使用polyfills?@babel/polyfill废弃后配置方案咨询

Babel polyfill 替代方案操作说明

你提到的安装core-js+regenerator-runtime后手动引入入口的方案是可行的,实际使用中可以根据项目需求选择以下两种操作方式:

方案1:全量引入(操作简单,适合小型项目)

  • 执行依赖安装命令,注意不要选已停止维护的v2版本,使用当前主流的v3版本:
    yarn add core-js@3 regenerator-runtime
  • 在项目入口文件最顶部添加两行引入代码即可:
import 'core-js/stable'
import 'regenerator-runtime/runtime'

该方案缺点是会引入所有兼容polyfill,打包体积相对更大。

方案2:按需自动注入(更推荐,优化打包体积)

如果项目已经配置了@babel/preset-env,可以通过修改babel配置实现按目标浏览器范围、按代码实际使用的API自动注入所需polyfill,不需要手动在入口引入:

  • 同样先安装依赖:
    yarn add core-js@3 regenerator-runtime
  • 修改babel配置文件(babel.config.json/.babelrc)中@babel/preset-env的配置项:
{
  "presets": [
    ["@babel/preset-env", {
      "targets": "> 0.25%, not dead",
      "useBuiltIns": "usage",
      "corejs": 3
    }]
  ]
}

配置里的targets字段可替换为项目实际需要兼容的浏览器范围

特殊场景注意

如果你开发的是第三方类库/工具包,不建议使用上面两种方案,会造成全局作用域污染,容易和宿主项目的polyfill产生冲突,建议改用@babel/plugin-transform-runtime实现非全局的polyfill注入。

内容的提问来源于stack exchange,提问作者nth-chile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 02:15:04