J'ai un problème avec babel building angular app for production

15

Comportement actuel Je construis mon projet angulaire sur circleci et il continue d'échouer avec le message suivant: Une exception non gérée s'est produite: impossible de trouver le module '@ babel / compat-data / corejs3-expedié-propositions'

Nécessite une pile:

/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

j'utilise

{
  "@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"
}

voici pourquoi npx nls @ sortie babel / preset-env:

eleven-app-frontend > @angular-devkit/build-angular > @babel/[email protected]
eleven-app-frontend > @nrwl/angular > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/[email protected]
eleven-app-frontend > @nrwl/cypress > @cypress/webpack-preprocessor > @babel/[email protected]

Merci pour la lecture.

Farid Garciayala
la source

Réponses:

6

J'ai eu le même problème aujourd'hui, donc je suppose qu'il y a quelque chose de bizarre avec la dernière version.

Mon package.json avait les éléments suivants:

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

J'ai supprimé le ~ pour forcer 7.9.0 au lieu d'en autoriser de nouveaux et cela a fait l'affaire pour moi.

Il existe probablement une version plus récente qui fonctionne, mais depuis que vous avez ouvert un problème pour eux ( https://github.com/babel/babel/issues/11427 ), j'attendrai simplement plus de détails.

Bruno Wolff
la source
1
@babel/runtime-corejs3
J'examine
1
J'ai essayé cela et cela n'a toujours pas fonctionné pour moi
Farid Garciayala
1
@FaridGarciayala dans mon cas, j'ai dû déclarer et utiliser 7.9.0, ce qui a résolu le problème
alex88
@FaridGarciayala cela devrait fonctionner (7.8 / 7.9) mais essayez de supprimer "node_modules" avant
Bruno Wolff
Même problème aujourd'hui. Le problème ne concerne que le serveur de build, pas les installations propres en local ...
cuniculus
5

J'ai le même problème lors de l'utilisation de TravisCI & Vue avec Jest et Babel. Ma combinaison d'essai a échoué. L'ajout "@babel/compat-data": "7.9.0"à devDependencies dans mon fichier package.json a résolu mes problèmes.

Wojciech Kasperski
la source
Je vous remercie. Cela m'a aidé à corriger ma suite de tests défaillante sur CI.
Miroslav Jonas
4

Ces 3 options que nous avons trouvées jusqu'à présent:

  • Adapter la dépendance de babel / preset-env à la v7.9.0: "@babel/preset-env": "=7.9.0"
  • Si vous utilisez une image Docker NodeJS, fixez la version à quelque chose en dessous de 13.13, c'est-à-dire: node:13.12.0-alpine
  • Ajout ou mise "@babel/compat-data": "7.9.0"à niveau vers devDependencies

Les solutions sont temporairement et doivent être supprimées dès qu'il existe un correctif réel des images de noeud ou de la bibliothèque babel / preset-env.

Problèmes liés à Github:

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

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

zerocewl
la source
2

J'ai eu le même problème aujourd'hui dans Github Actions build pour un projet Vue FE. Il se construit bien localement. Je vais essayer la solution ci-dessus et je ferai rapport ...

Mise à jour: Après avoir parcouru le fichier package-lock, ma solution a été d'ajouter explicitement "@ babel / compat-data" aux dépendances prod. Auparavant, ce n'était qu'une dépendance pour certaines dépendances dev. Donc, mon package.json ressemble maintenant à:

"dependencies": {
  "@babel/compat-data": "^7.8.6",
  ...
Séverin Beauvais
la source
1

Même problème. Résolu en suivant les conseils ci-dessus + en supprimant node_modules (voir ce fil github):

  • Ajouté explicitement @babel/compat-data": "7.9.0"à devDependencies
  • Noeud mis à niveau (13,3 à 14,0 dans mon cas)
  • J'ai dû supprimer mon dossier node_modules et relancer yarn(ou npm)
SofienM
la source