Angular 7 迁移至 Angular 8 后编译失败

3

我将项目迁移到 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.

首先,在Angular编译器资源加载器中的特定行,它未能加载指定的模板文件templateUrl,以下是该行代码:https://github.com/angular/angular/blob/master/packages/compiler-cli/src/ngtsc/resource_loader.ts#L111。目前仍不清楚模板URL与返回的promise错误有何关联。

可能是资源加载器中的某个错误,因为实时重新编译可以正常运行,但初始构建失败。

更新:

通过ng update命令从Angular 7迁移过来,所以更改很少。

我正在使用webpack 4,它可以很好地与Angular 7一起使用,但可能需要更改一些webpack选项。

从错误描述中不清楚错误的根本原因。查看编译器源代码没有找到任何线索。

尝试使用通过 'templateUrl' 使用某些标记模板从7迁移到8的纯净(无webpack)Angular重现它。


构建运行额外检查 - Aluan Haddad
1个回答

0

所以webpack使用@ngtools/webpack插件,其中包括加载Angular模板等功能。

我将@ngtools/webpack更新到@angular/cli的版本- ^8.3.15 - 这解决了最初的错误。

但仍然存在一些TypeScript错误,ng update命令更新了TypeScript版本,但它错过了两个应该更新到较新版本的库:

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

然后我的项目成功运行了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接