Plugin "Vorschlag-numerisches Trennzeichen" konnte nicht gefunden werden

61

Behebung Could not find plugin "proposal-numeric-separator": Ich erhalte diesen Fehler, wenn ich versuche, meine React-Anwendung zu erstellen. Ich habe die Anwendung noch nicht ausgeworfen:

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

Ich habe versucht, Babel und den Numeric Separator für Abhängigkeitsvorschläge herunterzuladen, die Knotenmodule zu entfernen und den Garncache zu bereinigen. aber nichts hat funktioniert.

Ich verwende Yarn 1.22.4 und Node 13.11.0, habe es aber auch mit NPM 6.13.7 versucht.

Walter
quelle
5
Ich habe das gleiche Problem. +1
Peoplespete
2
Andere Leute haben das gleiche Problem: reddit.com/r/angular/comments/flymj5/build_failing_please_help Die vorgeschlagene Lösung hat bei mir nicht funktioniert.
Peoplespete

Antworten:

46

Folgendes funktioniert

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

    zu package.json.

  2. Lauf npx npm-force-resolutions

  3. Führen Sie npm install oder yarn.

  4. Führen Sie aus yarn build, um Ihr Projekt zu erstellen

Schauen Sie sich diese Github-Ausgabe an

Hillkim Henry
quelle
1
Gerade hinzugefügt resolutions, node_modules entfernt und die Abhängigkeiten installiert. Es hat funktioniert, danke. Beobachtung : Ich habe den Build getestet und alles ist in Ordnung.
Walter
1
Mann, du rettest mein Leben. Woher wissen Sie von dieser Antwort? Du hast meine tolle Art, Kumpel. Vielen Dank.
Carlos Querioz
1
@CarlosQuerioz Ich denke, dass der Grund das letzte Thema in dieser Dokumentation ist: "Ihre Abhängigkeit definiert einen breiten Versionsbereich und Ihre Unterabhängigkeit hat gerade ein problematisches Update erhalten, sodass Sie es an eine frühere Version anheften möchten"
Walter
1
hat funktioniert! 24. März 2020
Josh
2
@ user3746480 Es ist ein Problem mit den Babel-Abhängigkeiten. Die wahrscheinlichste Ursache ist möglicherweise das Entfernen oder Aktualisieren von Knotenmodulen. Das ist der Grund, warum das Durchsetzen einer bestimmten Arbeitsversion das
Problem
31

Versuchen Sie dies, es funktioniert: npm i @babel/[email protected]

Ich habe es gerade wie vor 10 Minuten benutzt und es funktioniert gut.

Verwandte Ausgabe geht auf Github darüber. Klick hier!

Wahab Shah
quelle
1
Funktioniert bei mir. Die direkteste Antwort IMHO.
El Mac
1
Ich bin froh, dass es für dich funktioniert hat, danke :).
Wahab Shah
15

Aus dem entsprechenden Problem in der Create-React-App,

Aktualisieren Sie die React-Skripte in Ihrer Datei package.json auf 3.4.1 und entfernen Sie node_modules sowie package-lock.json / yarn.lock und installieren Sie sie erneut.

jobinbasani
quelle
Das funktioniert auch bei mir. Ich denke es war einfacher.
Carlos Querioz
10

Warum ist dieses Problem aufgetreten ?

Es handelt sich um Konflikte zwischen internen Paketen, die von verwendet werden babel.

Durch Hinzufügen eines neuen Plugins werden @babel/compat-dataalte @babel/preset-envVersionen beschädigt. Dies liegt daran, dass preset-envdie compat-dataPlugins durchlaufen werden und ausgelöst werden, wenn das Plugin nicht in der available-plugins.jsDatei von preset-env definiert ist .

Dies ist die Zusammenführung, die das Problem behoben hat: https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

Lösung :

  • Löschen package-lock.jsonoderyarn.lock
  • node_modulesOrdner löschen
  • In package.jonIch habe die Versionsnummern dieser Pakete angepasst an:
    ...
    "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"
    }
  • Lauf npm install
  • Lauf npm run build
Badis Merabet
quelle
6

Ich habe gerade die React-Script-Version von 3.0.1 auf 3.4.1 geändert

Beatriz Cibele
quelle
2
Ich habe diese Version bereits verwendet (:
Walter
6

Referenz: https://github.com/angular/angular-cli/issues/17262

Ich habe zwei Lösungen gefunden

a) Installieren Sie babel kompatibel

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

b) Installieren Sie das Plugin-Proposal-Numeric-Separator

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

Installieren Sie diese Version nur 7.8.0

  1. Angular CLI kann diese Art von Problem verursachen. Gehen Sie zu Paket json und ändern Sie es in

    Build-Angular: 0,803,17

bitte nicht ^ oder ~ hinzufügen .

Gajender Singh
quelle
6

Sie können diesen Befehl verwenden, der für mich funktioniert hat.

npm i @babel/compat-data@7.8.0
M Danial
quelle
Danke, Mann! Es funktionierte!
Gaurav Gupta
5

Ich hatte ein ähnliches Problem und konnte es beheben, indem ich alle Babel-Abhängigkeiten auf die neueste Version aktualisierte. Das genaue Problem mit Babel ist mir nicht bekannt. Der unten genannte Schritt hat jedoch bei mir funktioniert.

Schritt 1: Identifizieren und entfernen Sie alle babelbezogenen Abhängigkeiten aus 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

Schritt 2: Installieren Sie die Babel-Abhängigkeiten erneut

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: Die obige Liste der Babel-Abhängigkeiten unterscheidet sich für Ihr Projekt.

Meeraj Ahmed
quelle
5

Ich benutze Angular und das hat bei mir funktioniert. Ich habe einfach die Version von @ babel / compatible-data von ^7.8.0auf just geändert. 7.8.0Die package-lock.json hat eine neuere Version mit Fehlern.

Innerhalb package.json:

  "devDependencies": {
    "@babel/compat-data": "7.8.0",
}
Furqan S. Mahmoud
quelle
1
ja "@ babel / compatible-data": "7.9.0", funktioniert nicht github.com/angular/angular-cli/issues/…
Gerardo Perrucci
5

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"
  }

es funktioniert für mich. Sie können mehr lesen

https://github.com/angular/angular-cli/issues/17262#issuecomment-603396857

Gerardo Perrucci
quelle
4

Es ist nur ein 4-stufiger Prozess.

Grund: Dies liegt daran, dass ein Paket in babel fehlt. Dies geschieht auch dann, wenn Sie mit dem ng newBefehl eine eckige App erstellen .

Lösung

  1. Installieren Sie plugin-proposal-numeric-separatormit dem folgenden Code im Terminal.

    npm install --save @babel/plugin-proposal-numeric-separator
  2. Sobald dies erledigt ist, navigieren Sie wie unten gezeigt zur Datei.

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

  3. exports.default = void 0;Kopieren Sie in den folgenden verfügbaren Plugins.js den folgenden Code und fügen Sie ihn ein.

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. Kopieren Sie in available-plugins.js innerhalb der var _defaultObjektdeklaration den folgenden Code und fügen Sie ihn ein.

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

Und es ist geschafft.

Ajith CR
quelle
Ich denke, das ist keine gültige Lösung. Bitte folgen Sie diesem Thread: stackoverflow.com/questions/60780664/…
Gerardo Perrucci
4

In meiner Angular 8-Anwendung hatte ich zwar keine direkte Abhängigkeit vom React-Scripts-Paket und hatte es auch nicht, aber ich package.jsonbekam diesen Fehler beim Erstellen. Es wurde wahrscheinlich als Abhängigkeit von anderen Paketen verwendet.

Durch das Lesen dieses Beitrags auf github habe ich ihn als Abhängigkeit in package.json hinzugefügt "react-scripts": "3.4.1"und npm install ausgeführt. Der Build hat einwandfrei funktioniert.

Rumi
quelle
1

Das hat bei mir funktioniert:

  • Löschen package-lock.json
  • Löschen node_modules
  • Lauf npm i
Eric Eskildsen
quelle
0

SKIP_PREFLIGHT_CHECK=trueZur .envDatei hinzufügen , damit der Build ohne Auswerfen funktioniert, und die folgenden Schritte ausführen:

  • Löschen node_modulesundpackage-lock.json
  • Hinzufügen "resolutions": { "@babel/preset-env": "^7.8.7" }zupackage.json
  • Lauf npm install npm-force-resolutions --save-dev
  • Lauf npm install
  • Lauf npx npm-force-resolutions
  • Führen Sie npm installerneut aus
  • Lauf npm run build
Xameeramir
quelle
-2

Mir ist das gerade passiert. Um dies zu beheben, lief ich yarn buildmit Sudo-Berechtigungen.

Noah Cote
quelle
Das hat bei mir nicht funktioniert.
Peoplespete
Arbeiten Sie nicht hier
Walter