问题
How to fix Could not find plugin "proposal-numeric-separator"
, I get this error when I try to build my React application, I have not ejected the application yet:
./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.
I have try to download Babel and the dependency Proposal Numeric Separator, remove the Node Modules, clean the Yarn cache; but nothing worked.
I'm using Yarn 1.22.4 and Node 13.11.0, but I have also tried with NPM 6.13.7.
回答1:
The following works
Add
"resolutions": { "@babel/preset-env": "7.5.5" },
to
package.json
.Run
npx npm-force-resolutions
Run
npm install
oryarn
.- Run
yarn build
to build your project
Take a look at this Github Issue
回答2:
Try this, this works: npm i @babel/compat-data@7.8.0
I have just used it like 10 minutes ago and working fine.
Related issue going on github about this. Click Here!
回答3:
From the corresponding issue in create-react-app,
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.
回答4:
I just changed react-script version from 3.0.1 to 3.4.1
回答5:
Reference: https://github.com/angular/angular-cli/issues/17262
I found two solution
a ) Install babel compat
"devDependencies": {
"@babel/compat-data": "7.8.0",
}
b) Install plugin-proposal-numeric-separator
npm install --save-dev @babel/plugin-proposal-numeric-separator
install this version only 7.8.0
Angular CLI can create this kind of issue. Go to package json and change it to
build-angular": "0.803.17"
please don't add ^ or ~ .
回答6:
Why this problem happened?:
It's an issue of conflicts between internal packages used by babel
.
Adding a new plugin to @babel/compat-data
breaks old @babel/preset-env
versions. This is because preset-env
iterates over compat-data
's plugins, and throws if the plugin isn't defined in preset-env's available-plugins.js
file.
This is the merge that fixed the issue: https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd
Solution:
- Delete
package-lock.json
oryarn.lock
- Delete
node_modules
folder - In
package.jon
I have adjusted the version numbers of these packages to:
...
"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"
}
- Run
npm install
- Run
npm run build
回答7:
I faced similar issue and i was able to fix it by updating all babel dependencies to latest version. I'm not aware of the exact issue with babel. However, the below mentioned step worked for me.
Step 1: identify and remove all babel related dependencies from package.json
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
Step 2: re-install babel dependencies
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: The above list of babel dependencies will differ for your project.
回答8:
I'm using angular & this worked for me, simply changed the version of @babel/compat-data from ^7.8.0
to just 7.8.0
, the package-lock.json is having newer version which has bugs.
Inside package.json:
"devDependencies": {
"@babel/compat-data": "7.8.0",
}
回答9:
Its just a 4 step process.
Reason:
This happens because of a package missing in babel. This will happen even if you create angular app using ng new
command.
Solution
Install
plugin-proposal-numeric-separator
using the following code in terminal.npm install --save @babel/plugin-proposal-numeric-separator
Once it is done navigate to the file as shown below.
node_modules > @babel > preset-env > available-plugins.js
In available-plugins.js below
exports.default = void 0;
copy and paste the following code.var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
In available-plugins.js within
var _default
object declaration copy and paste the following code."proposal-numeric-separator": _pluginProposalNumericSeparator.default,
And it is done.
回答10:
In my angular 8 application, although I did not have any direct dependancy of react-scripts package and did not have it in package.json
either but started getting this error on build. It was likely used as a depedancy by other packges.
By reading this post on github, I added it as dependancy in package.json "react-scripts": "3.4.1"
and run npm install the build started working just fine.
回答11:
In 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"
}
it is working for me. You can read more
https://github.com/angular/angular-cli/issues/17262#issuecomment-603396857
回答12:
You can use this command, which has worked for me.
npm i @babel/compat-data@7.8.0
回答13:
I just had this happen to me. The To fix it I ran yarn build
with sudo privileges.
来源:https://stackoverflow.com/questions/60780664/could-not-find-plugin-proposal-numeric-separator