Tengo un problema con la aplicación angular de construcción de babel para producción

15

Comportamiento actual Estoy construyendo mi proyecto angular en circleci y sigue fallando con el siguiente mensaje: Se produjo una excepción no controlada: no se puede encontrar el módulo '@ babel / compat-data / corejs3-enviado-propuestas'

Requerir pila:

/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

estoy usando

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

aquí está npx nls por qué @ babel / preset-env output:

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]

Gracias por leer.

Farid Garciayala
fuente

Respuestas:

6

Tuve el mismo problema hoy, así que supongo que hay algo extraño con la última versión.

Mi package.json tenía lo siguiente:

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

Eliminé el ~ para forzar 7.9.0 en lugar de permitir los más nuevos y me sirvió.

Probablemente haya una versión más nueva que funcione, pero desde que abrió un problema para ellos ( https://github.com/babel/babel/issues/11427 ) esperaré más detalles.

Bruno Wolff
fuente
1
Estoy investigando el mismo problema, es extraño porque esa biblioteca ni @babel/runtime-corejs3ha sido publicada en semanas
alex88
1
Lo intenté y todavía no funcionó para mí
Farid Garciayala
1
@FaridGarciayala en mi caso tuve que declarar y usar 7.9.0 que solucionó el problema
alex88
@FaridGarciayala debería funcionar (7.8 / 7.9) pero intente eliminar "node_modules" antes
Bruno Wolff
Mismo problema hoy. El problema es solo en el servidor de compilación, no en instalaciones limpias localmente ...
cuniculus
5

Tengo el mismo problema cuando uso TravisCI & Vue con Jest y Babel. Mi traje de prueba ha fallado. Agregar "@babel/compat-data": "7.9.0"a devDependencies en mi archivo package.json resolvió mis problemas.

Wojciech Kasperski
fuente
Gracias. Esto me ayudó a arreglar mi conjunto de pruebas fallidas en CI.
Miroslav Jonas
4

Estas 3 opciones se nos ocurrieron hasta ahora:

  • Adapte la dependencia de babel / preset-env a v7.9.0: "@babel/preset-env": "=7.9.0"
  • En caso de que use una imagen Docker de NodeJS, corrija la versión a algo inferior a 13.13, es decir: node:13.12.0-alpine
  • Agregar o actualizar "@babel/compat-data": "7.9.0"a devDependencies

Las soluciones son temporales y deben eliminarse tan pronto como haya una solución real de las imágenes de nodo o la biblioteca babel / preset-env.

Problemas vinculados de Github:

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

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

zerocewl
fuente
2

Tuve el mismo problema hoy en Github Actions build para un proyecto Vue FE. Se construye bien a nivel local. Voy a probar la solución anterior e informaré ...

Actualización: Después de revisar el archivo de bloqueo de paquete, mi solución fue agregar explícitamente "@ babel / compat-data" a las dependencias de productos. Anteriormente solo era una dependencia para algunas dependencias de desarrollo. Entonces mi package.json ahora se ve así:

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

Mismo problema. Lo resolvió siguiendo los consejos anteriores + eliminando node_modules (consulte este hilo de github):

  • Agregado explícitamente @babel/compat-data": "7.9.0"a devDependencies
  • Nodo actualizado (13.3 a 14.0 en mi caso)
  • Tuve que eliminar mi carpeta node_modules y volver a ejecutar yarn(o npm)
SofienM
fuente