babel/polyfill 在 create-react-app 中已弃用警告

babel/polyfill is deprecated warning in create-react-app

我有一个 React 应用程序是我使用 npx create-react-app my-app 创建的。我一直在定期更新 React 和其他 npm 软件包。

不久前,我开始收到以下警告:

@babel/polyfill is deprecated. Please, use required parts of core-js and regenerator-runtime/runtime separately

以下是我的 package.json 文件中的内容:

"devDependencies": {
    "babel-polyfill": "^6.26.0",
    "redux-devtools": "^3.5.0"
  }

我在网上找到了几篇有关如何处理此问题的文章,但其中 none 看起来像是官方解决方案。处理此问题的正确方法是什么?

到目前为止,这是一个警告而不是错误,所以我只是推迟处理它。今天,我升级了 moment 包并开始给我一个错误,我认为首先处理这个问题是一个很好的起点。

我希望能得到一些建议来消除此警告。

babel-polyfill 正在被 core-js 取代。您可以删除 babel-polyfill 并改为安装 core-js。安装 core-js 后,使用以下内容更新 .babelrc 或 babel.config.js 文件中的 babel 预设:

"presets":[
  ['@babel/preset-env',
  {
    useBuiltIns: 'usage',
    corejs: 3,
  }],
]

如果您在您的应用程序中导入 babel-polyfill,您也可以将其删除。您还可以在预设

中添加目标属性
[
  '@babel/preset-env',
  {
    targets: {
      browsers: ['> 0.25%, not dead'],
    },
    useBuiltIns: 'usage',
    corejs: 3,
  },
]