找不到插件“ proposal-numeric-separator”


59

如何修复Could not find plugin "proposal-numeric-separator",当我尝试构建我的React应用程序时出现此错误,但我尚未弹出该应用程序:

./src/index.js
Error: [BABEL] /home/pc/Downloads/project/src/index.js: Could not find plugin "proposal-numeric-separator". Ensure there is an entry in ./available-plugins.js for it. (While processing: "/home/pc/Downloads/project/node_modules/babel-preset-react-app/index.js$0")
    at Array.map (<anonymous>)
    at Generator.next (<anonymous>)
    at Generator.next (<anonymous>)


error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我尝试下载Babel和依赖建议数字分隔符,删除节点模块,清理Yarn缓存;但没有任何效果。

我正在使用Yarn 1.22.4和Node 13.11.0,但我也尝试使用NPM 6.13.7。


5
我有同样的问题。+1
peoplespete

2
其他人也有同样的问题:reddit.com/r/angular/comments/flymj5/build_failing_please_help建议的解决方案对我不起作用。
peoplespete

Answers:


45

以下作品

  1. "resolutions": { "@babel/preset-env": "7.5.5" },

    package.json

  2. npx npm-force-resolutions

  3. 运行 npm installyarn

  4. 运行yarn build以构建您的项目

看看这个 Github问题


1
刚刚添加resolutions,删除了node_modules并安装了依赖项。很好,谢谢。观察:我已经测试了构建,一切正常。
沃尔特

1
男人,你救了我的命。您怎么知道这个答案?你有我的真棒,哥们。非常感谢。
卡洛斯·奎里奥兹

1
@CarlosQuerioz我认为原因是文档的最后一个主题:“您的依赖项定义了较大的版本范围,而您的子依赖项仅获得了有问题的更新,因此您希望将其固定到早期版本”
Walter

1
工作了!2020
乔什

2
@ user3746480 babel依赖关系有问题。最可能的原因可能是删除或更新节点模块。这就是为什么强制执行给定的工作版本可以对其进行修复的原因
Hillkim Henry


15

从create-react-app中的相应问题开始

将package.json文件中的react-scripts更新为3.4.1,并删除node_modules以及package-lock.json / yarn.lock并重新安装。


它也对我有用。我认为这更简单。
Carlos Querioz

10

为什么会发生此问题?:

这是所使用的内部软件包之间存在冲突的问题babel

添加新插件会@babel/compat-data破坏旧@babel/preset-env版本。这是因为preset-env遍历compat-data的插件,如果未在预设环境的available-plugins.js文件中定义插件,则抛出该异常。

这是解决问题的合并:https : //github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

解决方案

  • 删除package-lock.jsonyarn.lock
  • 删除资料node_modules
  • package.jon我已经调整这些包的版本号:
    ...
    "devDependencies": {
        "@babel/compat-data": "^7.8.0",
        "@babel/preset-env": "^7.8.0",
        "babel-loader": "^8.1.0",
        ...
    },
    ...
    "resolutions": {
        "@babel/preset-env": "^7.8.0"
    }
  • npm install
  • npm run build


6

参考:https : //github.com/angular/angular-cli/issues/17262

我找到了两种解决方案

a)安装babel compat

"devDependencies": {
    "@babel/compat-data": "7.8.0",
} 

b)安装plugin-proposal-numeric-separator

npm install --save-dev @babel/plugin-proposal-numeric-separator

仅安装此版本7.8.0

  1. Angular CLI可能会产生这种问题。转到包json并将其更改为

    build-angular“:” 0.803.17“

请不要添加^或〜



5

我遇到了类似的问题,并且能够通过将所有babel依赖项更新到最新版本来解决此问题。我不知道babel的确切问题。但是,下面提到的步骤对我有用。

步骤1:从package.json中识别并删除所有与babel相关的依赖项

npm remove @babel/runtime @babel/core @babel/plugin-proposal-class-properties @babel/plugin-transform-modules-commonjs @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react babel-eslint babel-jest babel-loader

步骤2:重新安装Babel依赖项

npm install --save @babel/runtime

npm install --save-dev @babel/core @babel/plugin-proposal-class-properties @babel/plugin-transform-modules-commonjs @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react babel-eslint babel-jest babel-loader

PS:以上babel依赖项列表对于您的项目将有所不同。




4

它只是一个4步骤的过程。

原因: 发生这种情况是因为babel中缺少软件包。即使使用ng new命令创建角度应用程序,也会发生这种情况。

  1. plugin-proposal-numeric-separator在终端中使用以下代码进行安装。

    npm install --save @babel/plugin-proposal-numeric-separator
  2. 完成后,导航到该文件,如下所示。

    node_modules> @babel>预设环境> available-plugins.js

  3. 在下面的available-plugins.js中,exports.default = void 0;复制并粘贴以下代码。

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. var _default对象声明内的available-plugins.js中,复制并粘贴以下代码。

    "proposal-numeric-separator": _pluginProposalNumericSeparator.default,

完成了。


我认为这不是一个有效的解决方案,请按照此线程:stackoverflow.com/questions/60780664/...
赫拉尔Perrucci

4

在我的angular 8应用程序中,尽管我没有对react-scripts包的任何直接依赖,并且在 package.json但是开始在构建时出现此错误。它很可能被其他包装用作替代品。

通过阅读github上的这篇文章,我将其作为依赖项添加到package.json中,"react-scripts": "3.4.1"并运行npm install,该构建开始正常工作。



0

添加SKIP_PREFLIGHT_CHECK=true.env文件以使构建工作而不会弹出,请执行以下步骤:

  • 删除node_modulespackage-lock.json
  • 添加"resolutions": { "@babel/preset-env": "^7.8.7" }package.json
  • npm install npm-force-resolutions --save-dev
  • npm install
  • npx npm-force-resolutions
  • 再跑npm install一次
  • npm run build

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.