Angular 8 не удается собрать после миграции из Angular 7 - PullRequest
1 голос
/ 28 октября 2019

После того, как я перенес свой проект в Angular 8, сборка завершается с такой странной ошибкой:

    ERROR in HostResourceLoader: loader(C:/myapp/cli/src/app/pages/user-home/user-home.component.html) returned a Promise 
    i 「wdm」: Failed to compile.

, но когда я сохраняю любой файл, приложение перекомпилируется нормально после перекомпиляции:

i 「wdm」: Compiling...
i 「wdm」: Compiled successfully.

Таким образом, изначально не удается загрузить файл шаблона, указанный в templateUrl в этой конкретной строке в загрузчике ресурсов Angular Compiler: https://github.com/angular/angular/blob/master/packages/compiler-cli/src/ngtsc/resource_loader.ts#L111, и неясно, каким образом URL шаблона относится к возвращаемомуошибка обещания.

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

UPD

Миграция из Angular 7 с помощью команды ng updateпоэтому изменения минимальны.

Я использую веб-пакет 4, который отлично работает с Angular 7, возможно, следует изменить некоторые параметры веб-пакета.

Неясно, что является основной причиной ошибки. из описания ошибки. Просмотр источника компилятора не пролил свет.

Попытка воспроизвести его в чистом виде (без веб-пакета) Angular мигрировал с 7 на 8 с использованием некоторых шаблонов разметки через `templateUrl '.

1 Ответ

2 голосов
/ 30 октября 2019

Итак, веб-пакет использует плагин @ngtools/webpack, который, помимо прочего, загружает шаблоны Angular.

Я обновил @ngtools/webpack до версии @angular/cli - ^8.3.15 - и это исправило первоначальную ошибку.

Но все же были некоторые ошибки TypeScript, команда ng update обновила версию TypeScript, но пропустили две библиотеки, которые также должны быть обновлены до более поздних версий:

"@types/node": "^10.17.2"
"tslib": "^1.10.0"

Затем мой проект успешно запустился.

...