找不到插件“proposal-numeric-separator”
Posted
技术标签:
【中文标题】找不到插件“proposal-numeric-separator”【英文标题】:Could not find plugin "proposal-numeric-separator" 【发布时间】:2020-07-01 23:23:14 【问题描述】:如何修复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 和依赖 Proposal Numeric Separator,删除节点模块,清理 Yarn 缓存;但没有任何效果。
我正在使用 Yarn 1.22.4 和 Node 13.11.0,但我也尝试过使用 NPM 6.13.7。
【问题讨论】:
我遇到了同样的问题。 +1 其他人也有同样的问题:reddit.com/r/angular/comments/flymj5/build_failing_please_help 建议的解决方案对我不起作用。 【参考方案1】:这件事发生在我身上。为了修复它,我使用 sudo 权限运行了 yarn build
。
【讨论】:
【参考方案2】:以下步骤有效:
-
将以下行添加到
package.json
:
"resolutions":
"@babel/preset-env": "7.5.5"
,
-
运行以下命令:
$ npx npm-force-resolutions
-
安装依赖项:
$ npm install
# or
$ yarn
-
构建您的项目:
$ yarn build
看看这个Github Issue
【讨论】:
刚刚添加了resolutions
,删除了node_modules并安装了依赖项。它奏效了,谢谢。 观察:我已经测试了构建,一切正常。
伙计,你救了我的命。你怎么知道这个答案?你有我的真棒,伙计。非常感谢。
@CarlosQuerioz 我认为原因是this 文档中的最后一个主题:“您的依赖项定义了广泛的版本范围,而您的子依赖项刚刚得到了一个有问题的更新,因此您想将其固定到较早的版本”
谢谢你。我不知道发生了什么。怎么会突然发生。我可以正常构建它,直到昨天,今天我必须这样做才能修复它?
@user3746480 是 babel 依赖的问题。最可能的原因可能是删除或更新节点模块。这就是为什么强制执行给定的工作版本来修复它【参考方案3】:
为什么会出现这个问题?:
这是babel
使用的内部包之间的冲突问题。
向@babel/compat-data
添加新插件会破坏旧的@babel/preset-env
版本。这是因为preset-env
迭代了compat-data
的插件,如果插件未在preset-env 的available-plugins.js
文件中定义,则会抛出异常。
这是解决问题的合并:https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd
解决方案:
删除package-lock.json
或yarn.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
【讨论】:
【参考方案4】:我遇到了类似的问题,我能够通过将所有 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
第二步:重新安装 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 依赖列表会因你的项目而异。
【讨论】:
【参考方案5】:来自create-react-app中对应的issue,
将你的 package.json 文件中的 react-scripts 更新到 3.4.1 并删除 node_modules 以及 package-lock.json/yarn.lock 并重新安装。
【讨论】:
【参考方案6】:我刚刚将 react-script 版本从 3.0.1 更改为 3.4.1
【讨论】:
【参考方案7】:我正在使用 Angular,这对我有用,只需将 @babel/compat-data 的版本从 ^7.8.0
更改为 7.8.0
,package-lock.json 的更新版本有错误。
在 package.json 中:
"devDependencies":
"@babel/compat-data": "7.8.0",
【讨论】:
是的“@babel/compat-data”:“7.9.0”,不起作用github.com/angular/angular-cli/issues/…【参考方案8】:参考:https://github.com/angular/angular-cli/issues/17262
我找到了两个解决方案
a ) 安装 babel 兼容
"devDependencies":
"@babel/compat-data": "7.8.0",
b) 安装 plugin-proposal-numeric-separator
npm install --save-dev @babel/plugin-proposal-numeric-separator
仅安装此版本 7.8.0
Angular CLI 可能会产生此类问题。转到package json并将其更改为
build-angular": "0.803.17"
请不要加 ^ 或 ~ 。
【讨论】:
【参考方案9】:这只是一个 4 步过程。
原因:
这是因为 babel 中缺少一个包。即使您使用 ng new
命令创建 Angular 应用程序,也会发生这种情况。
解决方案
在终端中使用以下代码安装plugin-proposal-numeric-separator
。
npm install --save @babel/plugin-proposal-numeric-separator
完成后导航到文件,如下所示。
node_modules > @babel > preset-env > available-plugins.js
在exports.default = void 0;
下方的available-plugins.js中复制并粘贴以下代码。
var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
在var _default
对象声明中的available-plugins.js中复制并粘贴以下代码。
"proposal-numeric-separator": _pluginProposalNumericSeparator.default,
它已经完成了。
【讨论】:
我认为这不是一个有效的解决方案,请关注这个帖子:***.com/questions/60780664/…【参考方案10】:试试这个,它有效:npm i @babel/compat-data@7.8.0
我在 10 分钟前刚刚使用过它,它运行良好。
Related issue going on github about this. Click Here!
【讨论】:
为我工作。最直接的答案恕我直言。 很高兴听到这个消息,谢谢安迪 B-) 谢谢,我厌倦了这里描述的其他方法,但第一次尝试就奏效了 我安装的@babel/preset-env 版本是7.8.6,安装完全相同的@babel/compat-data 版本对我有用!【参考方案11】:在我的 Angular 8 应用程序中,虽然我没有任何直接依赖于 react-scripts 包并且在 package.json
中也没有它,但在构建时开始出现此错误。它很可能被其他包用作依赖项。
通过阅读github 上的这篇文章,我将它作为依赖项添加到 package.json "react-scripts": "3.4.1"
并运行 npm install 构建开始工作正常。
【讨论】:
【参考方案12】:在 package.json 中
"dependencies":
"@babel/compat-data": "7.8.0",
"@babel/plugin-proposal-numeric-separator": "^7.8.3",
"babel-loader": "^8.1.0",
....
"resolutions":
"@babel/preset-env": "^7.8.7"
它对我有用。你可以阅读更多
https://github.com/angular/angular-cli/issues/17262#issuecomment-603396857
【讨论】:
【参考方案13】:你可以使用这个命令,它对我有用。
npm i @babel/compat-data@7.8.0
【讨论】:
【参考方案14】:Add SKIP_PREFLIGHT_CHECK=true
to .env
file 使构建工作而不弹出并按照以下步骤操作:
node_modules
和package-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
【讨论】:
【参考方案15】:这对我有用:
删除package-lock.json
删除node_modules
运行npm i
【讨论】:
【参考方案16】:就我而言,我的node_modules
文件夹已损坏。
我的 yarn install 只是因为电涌而停在了中间。
通过运行:
rm -rf node_modules
yarn
我的问题解决了。
【讨论】:
【参考方案17】:为我工作。 npm install @babel/compat-data@~7.8.0
【讨论】:
【参考方案18】:试试这个,这个对我有用。
npm i @babel/compat-data@7.8.0
【讨论】:
以上是关于找不到插件“proposal-numeric-separator”的主要内容,如果未能解决你的问题,请参考以下文章