Impossible de trouver le plugin "proposition-séparateur-numérique"

61

Comment résoudre ce problème Could not find plugin "proposal-numeric-separator", j'obtiens cette erreur lorsque j'essaie de créer mon application React, je n'ai pas encore éjecté l'application:

./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.

J'ai essayé de télécharger Babel et le séparateur numérique de proposition de dépendance, de supprimer les modules de nœud, de nettoyer le cache de fil; mais rien n'a fonctionné.

J'utilise Yarn 1.22.4 et Node 13.11.0, mais j'ai également essayé avec NPM 6.13.7.

Walter
la source
5
J'ai le même problème. 1
peoplespete
2
D'autres personnes ont le même problème: reddit.com/r/angular/comments/flymj5/build_failing_please_help La solution suggérée n'a pas fonctionné pour moi.
peoplespete

Réponses:

46

Les oeuvres suivantes

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

    à package.json.

  2. Courir npx npm-force-resolutions

  3. Exécutez npm install ou yarn.

  4. Courez yarn buildpour construire votre projet

Jetez un œil à ce numéro de Github

Hillkim Henry
la source
1
Juste ajouté resolutions, supprimé node_modules et installé les dépendances. Cela a fonctionné, merci. Observation : j'ai testé la build et tout va bien.
Walter
1
mec, tu me sauves la vie. Comment connaissez-vous cette réponse? Tu as mon super, mon pote. Merci beaucoup.
Carlos Querioz
1
@CarlosQuerioz Je pense que la raison est le dernier sujet de cette documentation: "Votre dépendance définit une large gamme de versions et votre sous-dépendance vient de recevoir une mise à jour problématique, vous voulez donc l'épingler à une version antérieure"
Walter
1
travaillé! 24 mars 2020
Josh
2
@ user3746480 C'est un problème avec les dépendances babel. La cause la plus probable pourrait être la suppression ou la mise à jour des modules de noeud. C'est pourquoi l'application d'une version de travail donnée le corrige
Hillkim Henry
15

Du problème correspondant dans create-react-app,

Mettez à jour react-scripts en 3.4.1 dans votre fichier package.json et supprimez node_modules ainsi que package-lock.json / yarn.lock et réinstallez.

jobinbasani
la source
Ça marche pour moi aussi. Je pense que c'était plus simple.
Carlos Querioz
10

Pourquoi ce problème est -il arrivé ?:

C'est un problème de conflits entre les packages internes utilisés par babel.

L'ajout d'un nouveau plugin pour @babel/compat-datacasser les anciennes @babel/preset-envversions. En effet, preset-envitère sur compat-datales plugins de et lance si le plugin n'est pas défini dans le available-plugins.jsfichier de preset-env .

C'est la fusion qui a résolu le problème: https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

Solution :

  • Supprimer package-lock.jsonouyarn.lock
  • Supprimer le node_modulesdossier
  • Dans package.jonJ'ai ajusté les numéros de version de ces packages pour:
    ...
    "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"
    }
  • Courir npm install
  • Courir npm run build
Badis Merabet
la source
6

Je viens de changer la version react-script de 3.0.1 à 3.4.1

Beatriz Cibele
la source
2
J'utilisais déjà cette version (:
Walter
6

Référence: https://github.com/angular/angular-cli/issues/17262

J'ai trouvé deux solution

a) Installer babel compat

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

b) Installer le plugin-proposition-séparateur numérique

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

installer cette version uniquement 7.8.0

  1. La CLI angulaire peut créer ce type de problème. Accédez au package json et remplacez-le par

    build-angular ":" 0.803.17 "

veuillez ne pas ajouter ^ ou ~ .

Gajender Singh
la source
6

Vous pouvez utiliser cette commande, qui a fonctionné pour moi.

npm i @babel/compat-data@7.8.0
M Danial
la source
Merci mec! Ça a marché!
Gaurav Gupta
5

J'ai rencontré un problème similaire et j'ai pu le résoudre en mettant à jour toutes les dépendances de Babel vers la dernière version. Je ne suis pas au courant du problème exact avec babel. Cependant, l'étape mentionnée ci-dessous a fonctionné pour moi.

Étape 1: identifier et supprimer toutes les dépendances liées à Babel de 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

Étape 2: réinstaller les dépendances de 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: La liste ci-dessus des dépendances babel sera différente pour votre projet.

Meeraj Ahmed
la source
5

J'utilise angular et cela a fonctionné pour moi, il suffit de changer la version de @ babel / compat-data de ^7.8.0juste 7.8.0, le package-lock.json a une version plus récente qui a des bugs.

À l'intérieur de package.json:

  "devDependencies": {
    "@babel/compat-data": "7.8.0",
}
Furqan S. Mahmoud
la source
1
oui "@ babel / compat-data": "7.9.0", ne fonctionne pas github.com/angular/angular-cli/issues/…
Gerardo Perrucci
4

C'est juste un processus en 4 étapes.

Raison: cela se produit à cause d'un paquet manquant dans babel. Cela se produira même si vous créez une application angulaire à l'aide de la ng newcommande.

Solution

  1. Installez en plugin-proposal-numeric-separatorutilisant le code suivant dans le terminal.

    npm install --save @babel/plugin-proposal-numeric-separator
  2. Une fois cela fait, accédez au fichier comme indiqué ci-dessous.

    node_modules> @babel> preset-env> available-plugins.js

  3. Dans available-plugins.js ci-dessous, exports.default = void 0;copiez et collez le code suivant.

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. Dans available-plugins.js dans var _defaultla déclaration d'objet, copiez et collez le code suivant.

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

Et c'est fait.

Ajith CR
la source
Je pense que ce n'est pas une solution valide, veuillez suivre ce fil: stackoverflow.com/questions/60780664/…
Gerardo Perrucci
4

Dans mon application angulaire 8, même si je n'avais aucune dépendance directe du package react-scripts et que je ne l'avais pas non plus, mais j'ai package.jsoncommencé à obtenir cette erreur lors de la construction. Il était probablement utilisé comme une dépendance par d'autres paquets.

En lisant ce post sur github , je l'ai ajouté en tant que dépendance dans package.json "react-scripts": "3.4.1"et exécuté npm install la construction a commencé à fonctionner très bien.

rumi
la source
1

Cela a fonctionné pour moi:

  • Supprimer package-lock.json
  • Supprimer node_modules
  • Courir npm i
Eric Eskildsen
la source
0

Ajoutez SKIP_PREFLIGHT_CHECK=trueau .envfichier pour que la construction fonctionne sans éjecter et suivez les étapes ci-dessous:

  • Supprimer node_modulesetpackage-lock.json
  • Ajouter "resolutions": { "@babel/preset-env": "^7.8.7" }àpackage.json
  • Courir npm install npm-force-resolutions --save-dev
  • Courir npm install
  • Courir npx npm-force-resolutions
  • Courez à npm installnouveau
  • Courir npm run build
xameeramir
la source
-2

Je venais juste de m'arriver. Pour le réparer, j'ai couru yarn buildavec les privilèges sudo.

Noah Cote
la source
Cela n'a pas fonctionné pour moi.
peoplespete
Ne travaillez pas ici
Walter