Не удалось найти плагин «предложение-числовой-разделитель»


61

Как исправить 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 и числовой разделитель предложений зависимостей, удалить модули узлов, очистить кэш пряжи; но ничего не получалось.

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


5
У меня та же проблема. +1
народная улица

2
У других людей такая же проблема: reddit.com/r/angular/comments/flymj5/build_failing_please_help Предлагаемое решение не сработало для меня.
Peoplepete

Ответы:


46

Следующие работы

  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 Я думаю, что причиной является последняя тема из этой документации: «Ваша зависимость определяет широкий диапазон версий, а ваша подчиненная зависимость только что получила проблемное обновление, поэтому вы хотите прикрепить ее к более ранней версии»
Уолтер

1
работал! 24 марта 2020 года
Джош

2
@ user3746480 Это проблема с зависимостями babel. Наиболее вероятной причиной может быть удаление или обновление узловых модулей. Вот почему применение данной рабочей версии исправляет это
Хиллким Генри

31

Попробуйте это, это работает: npm i @babel/compat-data@7.8.0

Я только что использовал его, как 10 минут назад, и он работает нормально.

Связанный вопрос, происходящий на GitHub об этом. Кликните сюда!


1
Работает для меня. Самый прямой ответ ИМХО.
Эль Мак

1
Я рад, что это сработало для вас, спасибо :).
Вахаб Шах

15

Из соответствующего выпуска в create-реагировать-приложение,

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


Это работает для меня тоже. Я думаю, что это было проще.
Карлос Кериос

10

Почему эта проблема произошла ?

Это проблема конфликтов между внутренними пакетами, используемыми babel.

Добавление нового плагина для @babel/compat-dataразрыва старых @babel/preset-envверсий. Это потому, что preset-envперебирает compat-dataплагины и выбрасывает, если плагин не определен в available-plugins.jsфайле preset-env .

Это объединение, которое решило проблему: https://github.com/babel/babel/pull/11201/files/a88a00750c61ff89f1622d408d67108719f21ecd

Решение :

  • Удалить package-lock.jsonилиyarn.lock
  • Удалить node_modulesпапку
  • В package.jonI скорректировал номера версии этих пакетов:
    ...
    "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/issues/17262

Я нашел два решения

а) Установить Babel Compat

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

б) Установить плагин-предложение-числовой-разделитель

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

установить эту версию только 7.8.0

  1. Angular CLI может создать такую ​​проблему. Перейдите в пакет JSON и измените его на

    build-angular ":" 0.803.17 "

пожалуйста, не добавляйте ^ или ~ .



5

Я столкнулся с подобной проблемой, и я смог ее исправить, обновив все зависимости от babel до последней версии. Я не знаю точной проблемы с Бабелем. Тем не менее, следующий шаг работал для меня.

Шаг 1: определить и удалить все связанные с babel зависимости из 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

Шаг 2: переустановите зависимости 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: приведенный выше список зависимостей babel будет отличаться для вашего проекта.


5

Я использую angular, и это сработало для меня, просто изменил версию @ babel / compat-data с ^7.8.0просто 7.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/issues/…
Герардо Перруччи


4

Это всего лишь 4 шага.

Причина: это происходит из-за отсутствия пакета в babel. Это произойдет, даже если вы создадите угловое приложение с помощью 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. В файле available-plugins.js ниже exports.default = void 0;скопируйте и вставьте следующий код.

    var _pluginProposalNumericSeparator = _interopRequireDefault(require("@babel/plugin-proposal-numeric-separator"));
  4. В available-plugins.js в var _defaultобъявлении объекта скопируйте и вставьте следующий код.

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

И это сделано.


Я думаю, что это не является правильным решением, пожалуйста, следуйте этой теме: stackoverflow.com/questions/60780664/…
Герардо Перруччи

4

В моем приложении angular 8, хотя у меня не было прямой зависимости от пакета activ-scripts, и у меня его package.jsonтоже не было, но я начал получать эту ошибку при сборке. Скорее всего, он использовался в качестве хранилища другими пакетами.

Прочитав этот пост на github , я добавил его как пакет зависимостей в package.json "react-scripts": "3.4.1"и запустил npm install, сборка стала работать нормально.



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

-2

Я только что это случилось со мной. Чтобы исправить это, я бежал yarn buildс привилегиями sudo.


Это не сработало для меня.
Peoplepete

Не работать здесь
Уолтер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.