У меня возникла проблема с угловым приложением Babel для производства

15

Текущее поведение Я строю свой угловой проект на окружности, и он просто продолжает сбой со следующим сообщением: Произошло необработанное исключение: Не удается найти модуль '@ babel / compat-data / corejs3-shipped-offer'

Требовать стек:

/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/lib/polyfills/corejs3/usage-plugin.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/lib/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/config/files/plugins.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/config/files/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/node_modules/@babel/core/lib/index.js
/home/circleci/eleven-app/frontend/node_modules/@angular-devkit/build-angular/src/utils/process-bundle.js
/home/circleci/eleven-app/frontend/node_modules/jest-worker/build/workers/processChild.js

я использую

{
  "@babel/plugin-proposal-numeric-separator": "^7.8.3",
  "core-js": "3.2.1",
  "tslib": "^1.11.1",
  "@babel/compat-data": "~7.8.0",
  "@babel/runtime-corejs3": "^7.9.2",
  "ts-node": "7.0.0",
  "tslint": "5.11.0",
  "typescript": "3.5.3",
}
resolutions: {
  "@babel/preset-env": "^7.8.7"
}

вот npx nls почему вывод @ babel / preset-env:

eleven-app-frontend > @angular-devkit/build-angular > @babel/preset-env@7.8.7
eleven-app-frontend > @nrwl/angular > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/preset-env@7.9.5
eleven-app-frontend > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/preset-env@7.9.5

Спасибо за чтение.

Фарид Гарсияла
источник

Ответы:

6

У меня была такая же проблема сегодня, поэтому я предполагаю, что с последней версией есть что-то странное.

Мой package.json имел следующее:

"@babel/compat-data": "~7.9.0"

Я удалил ~, чтобы заставить 7.9.0 вместо того, чтобы позволять более новым, и это помогло мне.

Вероятно, есть более новая версия, которая работает, но так как вы открыли для них проблему ( https://github.com/babel/babel/issues/11427 ), я просто подожду более подробной информации.

Бруно Вольф
источник
1
Я смотрю на ту же проблему, это странно, потому что эта библиотека @babel/runtime-corejs3не была опубликована в течение нескольких недель
alex88
1
Я попробовал это, и это все еще не работало для меня
Фарид Гарсиалала
1
@FaridGarciayala в моем случае я должен был объявить и использовать 7.9.0, что решило проблему
alex88
@FaridGarciayala это должно работать (7.8 / 7.9), но попробуйте удалить "node_modules" раньше
Бруно Вольф
Та же проблема сегодня. Проблема только в сервере сборки, а не в чистых установках локально ...
cuniculus
5

У меня та же проблема при использовании TravisCI & Vue с Jest и Babel. Мой тестовый костюм провалился. Добавление "@babel/compat-data": "7.9.0"к devDependencies в моем файле package.json решило мои проблемы.

Войцех Касперский
источник
Спасибо. Это помогло мне исправить мой провальный набор тестов на CI.
Мирослав Йонас
4

Эти 3 варианта, которые мы придумали до сих пор:

  • Адаптируйте зависимость babel / preset-env к v7.9.0: "@babel/preset-env": "=7.9.0"
  • В случае, если вы используете NodeJS Docker Image, исправьте версию ниже 13.13, то есть: node:13.12.0-alpine
  • Добавление или обновление "@babel/compat-data": "7.9.0"до devDependencies

Решения временно и должны быть удалены, как только есть фактическое исправление изображений узла или библиотеки babel / preset-env.

Связанные проблемы Github:

babel - https://github.com/babel/babel/issues/11427

nodejs - https://github.com/nodejs/node/issues/32852#issuecomment-613652057

zerocewl
источник
2

У меня была такая же проблема сегодня в сборке Github Actions для проекта Vue FE. Он хорошо строится на месте. Я собираюсь попробовать решение выше, и я сообщу ...

Обновление: после просмотра файла блокировки пакетов я решил явно добавить "@ babel / compat-data" в зависимости prod. Ранее это была только зависимость для некоторых зависимостей dev. Итак, мой package.json теперь выглядит так:

"dependencies": {
  "@babel/compat-data": "^7.8.6",
  ...
Северин Бове
источник
1

Та же проблема. Решил это, следуя приведенным выше советам + удаление node_modules (см. Эту ветку github):

  • Добавлено явно @babel/compat-data": "7.9.0"в devDependencies
  • Модернизированный узел (с 13.3 до 14.0 в моем случае)
  • Пришлось удалить мою папку node_modules и запустить снова yarn(или npm)
SofienM
источник