Не вдалося знайти плагін "Розмежувач пропозицій"


60

Як виправити 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$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.

Я спробував завантажити Babel і пропозицію залежності, чисельний сепаратор, видалити модулі вузла, очистити кеш пряжі; але нічого не вийшло.

Я використовую пряжу 1.22.4 та Node 13.11.0, але я також спробував з NPM 6.13.7.


5
У мене така ж проблема. +1
peoplespete

2
Інші люди мають таку ж проблему: reddit.com/r/angular/comments/flymj5/build_failing_please_help Пропоноване рішення для мене не підходило .
peoplespete

Відповіді:


45

Наступні роботи

  1. Додайте "resolutions": { "@babel/preset-env": "7.5.5" },

    до package.json.

  2. Біжи npx npm-force-resolutions

  3. Виконати npm install або yarn.

  4. Запустіть, yarn buildщоб створити свій проект

Погляньте на цей випуск Github


1
Щойно додав resolutions, видалив node_modules та встановив залежності. Це спрацювало, дякую. Спостереження : я перевірив збірку і все нормально.
Вальтер

1
чоловіче, ти врятуєш мені життя. Звідки ви знаєте про цю відповідь? У тебе є моє дивовижне, друже. Дуже дякую.
Карлос Кверіоз

1
@CarlosQuerioz Я думаю, що причина - це остання тема цієї документації: "Ваша залежність визначає широкий діапазон версій, і ваша субзалежність просто отримала проблематичне оновлення, тому ви хочете прив’язати її до більш ранньої версії"
Walter

1
працювали! 24 березня 2020 р.
Джош

2
@ user3746480 Це проблема із залежністю бабенок. Найбільш ймовірною причиною може бути видалення або оновлення модулів вузлів. Ось чому виконання цієї робочої версії виправляється
Hillkim Генрі

31

Спробуйте це, працює: npm i @babel/compat-data@7.8.0

Я тільки що використовував його, як 10 хвилин тому, і він працює чудово.

Про це йдеться у відповідній проблемі. Натисніть тут!


1
Працює для мене. Більшість прямих відповідей ІМХО.
El Mac

1
Я радий, що це працювало на вас, Дякую :).
Вахаб Шах

15

З відповідної проблеми в create-react-app,

Оновіть реактивні скрипти до 3.4.1 у файлі package.json та видаліть node_modules, а також пакунок-lock.json / yarn.lock та перевстановіть.


Це працює і для мене. Я думаю, це було простіше.
Карлос Кверіоз

10

Чому така проблема трапилась ?

Це питання конфліктів між внутрішніми пакетами, якими користується babel.

Додавання нового плагіна для @babel/compat-dataрозбиття старих @babel/preset-envверсій. Це пояснюється тим, що він preset-envповторює над compat-dataплагінами 's, і кидає, якщо плагін не визначений у 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


6

Довідка: https://github.com/angular/angular-cli/isissue/17262

Я знайшов два рішення

a) Встановіть вата-компат

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

b) Встановіть модуль plugin-offer-numeric-separator

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

встановити цю версію лише 7.8.0

  1. Кутова CLI може створити подібний випуск. Перейдіть до пакету json та змініть його на

    збірно-кутовий ":" 0.803.17 "

не додайте ^ чи ~ .



5

Я зіткнувся з подібною проблемою, і мені вдалося виправити це шляхом оновлення всіх залежностей вавилонів до останньої версії. Мені невідомо точне питання з бабелом. Однак нижчезазначений крок працював для мене.

Крок 1: ідентифікуйте та видаліть усі пакунки, пов'язані з babel, з пакета.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

Крок 2: повторно встановіть залежність бабеля

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: Вищенаведений перелік залежностей від вабелів буде відрізнятися для вашого проекту.


5

Я використовую angular & це працювало для мене, просто змінив версію @ babel / compat-data з ^7.8.0just7.8.0 , пакет-lock.json має більш нову версію, в якій є помилки.

Всередині package.json:

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

1
так "@ babel / compat-data": "7.9.0", не працює github.com/angular/angular-cli/isissue/…
Джерардо Перруччі,


4

Це всього лише 4-х кроковий процес.

Причина: це трапляється через відсутність пакету в вавілоні. Це станеться, навіть якщо ви створите кутовий додаток за допомогоюng new команди.

Рішення

  1. Встановіть plugin-proposal-numeric-separatorза допомогою наступного коду в терміналі.

    npm install --save @babel/plugin-proposal-numeric-separator
  2. Після цього перейдіть до файлу, як показано нижче.

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

  3. У доступному-plugins.js нижче exports.default = void 0;скопіюйте та вставте наступний код.

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. У доступний-plugins.js в межах var _defaultоб’єкта декларації скопіюйте та вставте наступний код.

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

І це робиться.


Я думаю , що це не найкраще рішення, будь ласка , дотримуйтесь цієї теми: stackoverflow.com/questions/60780664 / ...
Херардо Perrucci

4

У моєму кутовому застосуванні 8, хоча я не мав прямої залежності пакета реакцій-скриптів і не мав його в package.json жодному, але почав отримувати цю помилку при складанні. Він, ймовірно, використовувався як депеданс іншими упаковками.

Читаючи цю публікацію на github , я додав її як залежність у package.json "react-scripts": "3.4.1"і запустив npm встановити, збірка почала працювати чудово.



0

Додайте SKIP_PREFLIGHT_CHECK=trueдо .envфайлу, щоб зробити збірку без вилучення та виконайте наведені нижче дії:

  • Видалити 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.