Búsqueda de sitios web

node.js - No se puede compilar el proyecto Angular después de la actualización de la versión 8 a la 9


He realizado una actualización de mi proyecto Angular de la versión 8 a la 9 utilizando la herramienta ng update. Localmente (Windows) todo funciona bien, pero cuando intento construir el proyecto en Docker, obtengo el siguiente error:

Step 6/11 : RUN npm run build
  ---> Running in d60f739a56f6
 > [email  build /app
 > ng build --prod
 Compiling @angular/core : es2015 as esm2015
 ERROR in EINVAL: invalid argument, rename '/app/node_modules/@angular/core/core.d.ts' -> '/app/node_modules/@angular/core/core.d.ts.__ivy_ngcc_bak'
 npm ERR! code ELIFECYCLE
 npm ERR! errno 1
 npm ERR! [email  build: `ng build --prod`
 npm ERR! Exit status 1
 npm ERR! 
 npm ERR! Failed at the [email  build script.
 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
 npm ERR! A complete log of this run can be found in:
 npm ERR!     /root/.npm/_logs/2020-03-20T11_44_02_696Z-debug.log
 The command '/bin/sh -c npm run build' returned a non-zero code: 1

El dockerfile:

FROM node:13.10.1-stretch as base

RUN apt-get update -qq && apt-get install -y build-essential

ADD . /app
WORKDIR /app

RUN npm ci
RUN npm run build

Dependencias :

"dependencies": {
  "@angular/animations": "^9.0.7",
  "@angular/cdk": "^8.2.3",
  "@angular/common": "^9.0.7",
  "@angular/compiler": "^9.0.7",
  "@angular/core": "^9.0.7",
  "@angular/forms": "^9.0.7",
  "@angular/material": "^8.2.3",
  "@angular/platform-browser": "^9.0.7",
  "@angular/platform-browser-dynamic": "^9.0.7",
  "@angular/router": "^9.0.7",
  "core-js": "^2.4.1",
  "rxjs": "^6.5.4",
  "rxjs-compat": "^6.0.0-rc.0",
  "tslib": "^1.10.0",
  "zone.js": "~0.10.2"
},
"devDependencies": {
  "@angular-devkit/build-angular": "~0.900.7",
  "@angular/cli": "^9.0.7",
  "@angular/compiler-cli": "^9.0.7",
  "@angular/language-service": "^9.0.7",
  "@types/jasmine": "~2.8.3",
  "@types/jasminewd2": "~2.0.2",
  "@types/node": "^12.11.1",
  "codelyzer": "^5.1.2",
  "jasmine-core": "~2.8.0",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "~2.0.0",
  "karma-chrome-launcher": "~2.2.0",
  "karma-coverage-istanbul-reporter": "^1.2.1",
  "karma-jasmine": "~1.1.0",
  "karma-jasmine-html-reporter": "^0.2.2",
  "node-sass": "^4.13.1",
  "protractor": "~5.1.2",
  "ts-node": "~4.1.0",
  "tslint": "~5.9.1",
  "typescript": "~3.7.5"
}

¿Hay algo que pueda hacer para arreglarlo? Las imágenes para Angular 8 estaban bien. He probado diferentes imágenes de node, pero nada ayudó...

Respuesta #1

No estoy exactamente seguro de cuál es tu problema o qué lo está causando, pero hice una búsqueda rápida y me encontré con este problema en GitHub. Se refiere a compilaciones en paralelo (lo cual no creo que sea tu caso), pero pensé que aún podría aplicarse aquí ya que el error ocurre durante la compilación del núcleo de Angular.

La solución alternativa sugerida es ejecutar el compilador de compatibilidad de Angular (ngcc) como un script de postinstall, en lugar de que la compilación lo active por sí misma.

Modifica tu archivo package.json y añade lo siguiente en la sección scripts:

"postinstall": "ngcc

Artículos relacionados