【问题标题】:babel/polyfill is deprecated warning in create-react-appbabel/polyfill 在 create-react-app 中被弃用警告
【发布时间】:2020-05-01 21:25:24
【问题描述】:

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

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

@babel/polyfill 已弃用。请使用 core-js 的必需部分 和 regenerator-runtime/runtime 分开

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

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

我在网上找到了一些关于如何处理这个问题的文章,但没有一篇看起来像官方的解决方案。处理这个问题的正确方法是什么?

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

我很感激一些让这个警告消失的建议。

【问题讨论】:

    标签: reactjs webpack create-react-app babel-polyfill


    【解决方案1】:

    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,
      },
    ]
    

    【讨论】:

    • 也许我没有完全按照您的指示进行操作。我在package.json 文件的devDependencies 部分下将"babel-polyfill": "^6.26.0" 替换为"core-js": "3.6.5",但是当我运行npm start 来编译我的React 应用程序时,我仍然遇到与以前相同的错误。我在我的应用程序目录中看不到 .babelrcbabel.config.js 文件。但是,我确实在package-lock.json 文件中看到了大量对babel 的引用。在安装core-js 之前,我删除了npm_modules 文件夹以及package-lock.json 文件。我做错了什么?
    • 基本上,我更新了我的package.json 文件以使用core-js 而不是babel-pollyfill,删除了npm_modules 文件夹和package-lock.json 文件。然后运行npm i 以全新安装所有软件包。无论如何,正如我之前提到的,当我开始编译过程时,我仍然遇到同样的错误。
    • 我很抱歉你说你在使用 Create React App @Sam
    • 另外,我的react-scripts 包是最新的,即"react-scripts": "^3.4.1"。我认为那里可能有对babel 的引用。
    • 是的,我使用 Create React App 创建了我的 React 应用程序。这对此有何影响?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 2017-08-23
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多