找不到插件 "proposal-numeric-separator"
Could not find plugin "proposal-numeric-separator"
如何修复 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[=11=]")
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,移除 Node Modules,清理 Yarn 缓存;但没有任何效果。
我使用的是 Yarn 1.22.4 和 Node 13.11.0,但我也尝试过使用 NPM 6.13.7。
我刚刚遇到了这件事。要修复它,我 运行 yarn build
具有 sudo 权限。
以下步骤有效:
- 将以下行添加到
package.json
:
"resolutions": {
"@babel/preset-env": "7.5.5"
},
- 运行以下命令:
$ npx npm-force-resolutions
- 安装依赖项:
$ npm install
# or
$ yarn
- 构建您的项目:
$ yarn build
看看这个Github Issue
为什么会出现这个问题?:
这是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
我遇到了类似的问题,我能够通过将所有 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 依赖项列表会因您的项目而异。
来自create-react-app中对应的issue,
Update react-scripts to 3.4.1 in your package.json file and remove
node_modules as well as package-lock.json/yarn.lock and re-install.
我刚刚将 react-script 版本从 3.0.1 更改为 3.4.1
我正在使用 angular & 这对我有用,只需将 @babel/compat-data 的版本从 ^7.8.0
更改为 7.8.0
,包-lock.json 有较新的版本,但有错误。
里面 package.json:
"devDependencies": {
"@babel/compat-data": "7.8.0",
}
参考: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
Angular CLI 会造成此类问题。转到包 json 并将其更改为
build-angular": "0.803.17"
请不要添加 ^ 或 ~ 。
这只是一个 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
在available-plugins.js下方exports.default = void 0;
复制粘贴以下代码。
var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
在available-plugins.js内var _default
对象声明复制粘贴以下代码。
"proposal-numeric-separator": _pluginProposalNumericSeparator.default,
完成了。
试试这个,它有效:npm i @babel/compat-data@7.8.0
我刚刚在 10 分钟前使用过它,它运行良好。
在我的 angular 8 应用程序中,虽然我没有对 react-scripts 包的任何直接依赖性并且在 package.json
中也没有,但在构建时开始出现此错误。它可能被其他包用作 depedancy。
通过在 github 上阅读此 post,我将其作为依赖项添加到 package.json "react-scripts": "3.4.1"
和 运行 npm install 构建开始正常工作.
在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
你可以使用这个命令,它对我有用。
npm i @babel/compat-data@7.8.0
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
这对我有用:
- 删除
package-lock.json
- 删除
node_modules
- 运行
npm i
就我而言,我有一个损坏的 node_modules
文件夹。
我的纱线安装只是由于电源浪涌而在中间停止了。
来自 运行:
rm -rf node_modules
yarn
我的问题解决了。
对我有用。
npm 安装@babel/compat-data@~7.8.0
试试这个,这个和我一起工作。
npm i @babel/compat-data@7.8.0
如何修复 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[=11=]")
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,移除 Node Modules,清理 Yarn 缓存;但没有任何效果。
我使用的是 Yarn 1.22.4 和 Node 13.11.0,但我也尝试过使用 NPM 6.13.7。
我刚刚遇到了这件事。要修复它,我 运行 yarn build
具有 sudo 权限。
以下步骤有效:
- 将以下行添加到
package.json
:
"resolutions": {
"@babel/preset-env": "7.5.5"
},
- 运行以下命令:
$ npx npm-force-resolutions
- 安装依赖项:
$ npm install
# or
$ yarn
- 构建您的项目:
$ yarn build
看看这个Github Issue
为什么会出现这个问题?:
这是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
我遇到了类似的问题,我能够通过将所有 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 依赖项列表会因您的项目而异。
来自create-react-app中对应的issue,
Update react-scripts to 3.4.1 in your package.json file and remove node_modules as well as package-lock.json/yarn.lock and re-install.
我刚刚将 react-script 版本从 3.0.1 更改为 3.4.1
我正在使用 angular & 这对我有用,只需将 @babel/compat-data 的版本从 ^7.8.0
更改为 7.8.0
,包-lock.json 有较新的版本,但有错误。
里面 package.json:
"devDependencies": {
"@babel/compat-data": "7.8.0",
}
参考: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
Angular CLI 会造成此类问题。转到包 json 并将其更改为
build-angular": "0.803.17"
请不要添加 ^ 或 ~ 。
这只是一个 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
在available-plugins.js下方
exports.default = void 0;
复制粘贴以下代码。var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
在available-plugins.js内
var _default
对象声明复制粘贴以下代码。"proposal-numeric-separator": _pluginProposalNumericSeparator.default,
完成了。
试试这个,它有效:npm i @babel/compat-data@7.8.0
我刚刚在 10 分钟前使用过它,它运行良好。
在我的 angular 8 应用程序中,虽然我没有对 react-scripts 包的任何直接依赖性并且在 package.json
中也没有,但在构建时开始出现此错误。它可能被其他包用作 depedancy。
通过在 github 上阅读此 post,我将其作为依赖项添加到 package.json "react-scripts": "3.4.1"
和 运行 npm install 构建开始正常工作.
在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
你可以使用这个命令,它对我有用。
npm i @babel/compat-data@7.8.0
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
这对我有用:
- 删除
package-lock.json
- 删除
node_modules
- 运行
npm i
就我而言,我有一个损坏的 node_modules
文件夹。
我的纱线安装只是由于电源浪涌而在中间停止了。
来自 运行:
rm -rf node_modules
yarn
我的问题解决了。
对我有用。 npm 安装@babel/compat-data@~7.8.0
试试这个,这个和我一起工作。
npm i @babel/compat-data@7.8.0