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

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 и переустановите.

jobinbasani
источник
Это работает для меня тоже. Я думаю, что это было проще.
Карлос Кериос
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

Я только что изменил версию реакции-скрипта с 3.0.1 на 3.4.1

Беатрис Сибеле
источник
2
Я уже использовал эту версию (:
Уолтер
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 "

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

Гаджендер Сингх
источник
6

Вы можете использовать эту команду, которая сработала для меня.

npm i @babel/compat-data@7.8.0
М Даниал
источник
Спасибо чувак! Это сработало!
Гаурав Гупта
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, сборка стала работать нормально.

Руми
источник
1

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

  • удалять package-lock.json
  • удалять node_modules
  • Запустить npm i
Эрик Эскильдсен
источник
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
xameeramir
источник
-2

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

Ноа Кот
источник
Это не сработало для меня.
Peoplepete
Не работать здесь
Уолтер