Невозможно построить Angular проект после обновления с 8 до 9 - PullRequest
4 голосов
/ 20 марта 2020

Я выполнил обновление моего Angular проекта с 8 до 9 с помощью инструмента ng update. Локально (Windows) все работает нормально, но когда я пытаюсь собрать проект в docker, я получаю следующую ошибку:

Step 6/11 : RUN npm run build
  ---> Running in d60f739a56f6
 > check-it-frontend@0.0.0 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! check-it-frontend@0.0.0 build: `ng build --prod`
 npm ERR! Exit status 1
 npm ERR! 
 npm ERR! Failed at the check-it-frontend@0.0.0 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

Файл docker:

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

Зависимости:

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

Что я могу сделать, чтобы это исправить? Изображения для Angular 8 были в порядке. Я пробовал разные образы узлов, но ничего не помогло ...

1 Ответ

1 голос
/ 23 марта 2020

Я не совсем уверен в том, что вы выпускаете или в чем причина, но я сделал быстрый поиск и наткнулся на эту проблему github . Это касается параллельных сборок (что я не думаю, что это ваш случай), но я подумал, что это все еще может быть применено, поскольку ошибка возникает во время компиляции angular core.

Предлагаемый обходной путь - запустить angular компилятор совместимости (ngcc) в качестве сценария после установки, вместо того, чтобы запускать его сборку itselg.

Измените файл package.json и добавьте в раздел scripts следующее:

"postinstall": "ngcc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...