Nie można znaleźć wtyczki „propozycja-separator liczbowy”

60

Jak naprawić Could not find plugin "proposal-numeric-separator"błąd pojawia się, gdy próbuję zbudować aplikację React, jeszcze jej nie wysunąłem:

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

Próbowałem pobrać Babel i zależność Numeryczny separator propozycji, usunąć moduły węzłów, wyczyścić pamięć podręczną przędzy; ale nic nie działało.

Używam Yarn 1.22.4 i Node 13.11.0, ale próbowałem również z NPM 6.13.7.

Walter
źródło
5
Mam ten sam problem. +1
peoplespete
2
Inne osoby mają ten sam problem: reddit.com/r/angular/comments/flymj5/build_failing_please_help Sugerowane rozwiązanie nie działa dla mnie.
peoplespete

Odpowiedzi:

45

Następujące prace

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

    do package.json.

  2. Biegać npx npm-force-resolutions

  3. Uruchom npm install lub yarn.

  4. Uruchom, yarn buildaby zbudować swój projekt

Spójrz na ten problem Github

Hillkim Henry
źródło
1
Właśnie dodałem resolutions, usunąłem node_modules i zainstalowałem zależności. Udało się, dzięki. Uwaga : przetestowałem wersję i wszystko jest w porządku.
Walter
1
stary, ratujesz mi życie. Skąd wiesz o tej odpowiedzi? Masz mojego wspaniałego, kolego. Wielkie dzięki.
Carlos Querioz
1
@CarlosQuerioz Myślę, że przyczyną jest ostatni temat z tej dokumentacji: „Twoja zależność określa szeroki zakres wersji, a twoja zależność właśnie dostała problematyczną aktualizację, więc chcesz przypiąć ją do wcześniejszej wersji”
Walter
1
pracował! 24 marca 2020 r.
Josh
2
@ user3746480 Jest to problem z zależnościami babel. Najbardziej prawdopodobną przyczyną może być usunięcie lub aktualizacja modułów węzła. Właśnie dlatego wymuszenie danej działającej wersji naprawia ją
Hillkim Henry
15

Z odpowiedniego problemu w aplikacji create-reag-app:

Zaktualizuj skrypty reagujące do wersji 3.4.1 w pliku package.json i usuń moduły node_modu, a także pakiet-lock.json / yarn.lock i zainstaluj ponownie.

jobinbasani
źródło
To też działa dla mnie. Myślę, że to było prostsze.
Carlos Querioz
10

Dlaczego tak się stało ?

Jest to kwestia konfliktów między wewnętrznymi pakietami używanymi przez babel.

Dodanie nowej wtyczki do @babel/compat-datazepsucia starych @babel/preset-envwersji. Wynika to z preset-enviteracji compat-datawtyczek i zgłasza, jeśli wtyczka nie jest zdefiniowana w available-plugins.jspliku preset-env .

To jest połączenie, które naprawiło problem: https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

Rozwiązanie :

  • Usuń package-lock.jsonlubyarn.lock
  • Usuń node_modulesfolder
  • W package.jondostosowałem numery wersji tych pakietów do:
    ...
    "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"
    }
  • Biegać npm install
  • Biegać npm run build
Badis Merabet
źródło
6

Właśnie zmieniłem wersję skryptu reagowania z 3.0.1 na 3.4.1

Beatriz Cibele
źródło
2
Korzystałem już z tej wersji (:
Walter
6

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

Znalazłem dwa rozwiązania

a) Zainstaluj Babel Compat

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

b) Zainstaluj separator-propozycja-separator liczbowy

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

zainstaluj tę wersję tylko 7.8.0

  1. Angular CLI może stworzyć tego rodzaju problem. Przejdź do pakietu json i zmień go na

    build-angular ":" 0.803.17 "

proszę nie dodawać ^ ani ~ .

Gajender Singh
źródło
6

Możesz użyć tego polecenia, które zadziałało dla mnie.

npm i @babel/compat-data@7.8.0
M. Danial
źródło
Dzięki stary! Zadziałało!
Gaurav Gupta
5

Napotkałem podobny problem i udało mi się go naprawić, aktualizując wszystkie zależności babel do najnowszej wersji. Nie znam dokładnego problemu z babelem. Jednak niżej wymieniony krok zadziałał dla mnie.

Krok 1: Zidentyfikuj i usuń wszystkie zależności związane z babelem z 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

Krok 2: Ponownie zainstaluj zależności 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: Powyższa lista zależności babel będzie różna dla twojego projektu.

Meeraj Ahmed
źródło
5

Używam angular i to zadziałało dla mnie, po prostu zmieniłem wersję @ babel / kompatybil-data z ^7.8.0na właśnie 7.8.0, pakiet-lock.json ma nowszą wersję, która zawiera błędy.

Inside package.json:

  "devDependencies": {
    "@babel/compat-data": "7.8.0",
}
Furqan S. Mahmoud
źródło
1
tak „@ babel / Compat-data”: „7.9.0”, nie działa github.com/angular/angular-cli/issues/…
Gerardo Perrucci
4

To tylko 4-etapowy proces.

Powód: Dzieje się tak z powodu braku pakietu w Babel. Stanie się tak, nawet jeśli utworzysz aplikację kątową za pomocą ng newpolecenia.

Rozwiązanie

  1. Zainstaluj plugin-proposal-numeric-separatorza pomocą następującego kodu w terminalu.

    npm install --save @babel/plugin-proposal-numeric-separator
  2. Po zakończeniu przejdź do pliku, jak pokazano poniżej.

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

  3. W pliku available-plugins.js poniżej exports.default = void 0;skopiuj i wklej następujący kod.

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. W available-plugins.js w ramach var _defaultdeklaracji obiektu skopiuj i wklej następujący kod.

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

I gotowe.

Ajith CR
źródło
Myślę, że to nie jest poprawne rozwiązanie, proszę śledzić ten wątek: stackoverflow.com/questions/60780664/...
Gerardo Perrucci
4

W mojej aplikacji kątowej 8, chociaż nie miałem bezpośredniej zależności od pakietu skryptów reagujących i nie miałem go w package.jsonżadnym z nich, ale zacząłem otrzymywać ten błąd podczas kompilacji. Prawdopodobnie był używany jako depedancja przez inne opakowania.

Czytając ten post na github , dodałem go jako zależność w package.json "react-scripts": "3.4.1"i uruchomiłem npm install kompilacja zaczęła działać dobrze.

rumi
źródło
1

To działało dla mnie:

  • Usunąć package-lock.json
  • Usunąć node_modules
  • Biegać npm i
Eric Eskildsen
źródło
0

Dodaj SKIP_PREFLIGHT_CHECK=truedo .envpliku, aby kompilacja działała bez wysuwania, i wykonaj następujące kroki:

  • Usuń node_modulesipackage-lock.json
  • Dodaj "resolutions": { "@babel/preset-env": "^7.8.7" }dopackage.json
  • Biegać npm install npm-force-resolutions --save-dev
  • Biegać npm install
  • Biegać npx npm-force-resolutions
  • Uruchom npm installponownie
  • Biegać npm run build
xameeramir
źródło
-2

Właśnie mi się to przydarzyło. Aby to naprawić, uruchomiłem yarn buildz uprawnieniami sudo.

Noah Cote
źródło
To mi nie zadziałało.
peoplespete
Nie pracuj tutaj
Walter