【发布时间】:2021-07-05 12:41:13
【问题描述】:
在开发 Angular 库期间,我使用 ng build <lib> --watch 即时构建库。根据官方 Angular 文档进行设置:https://angular.io/guide/creating-libraries 我正在使用npm link 将库符号链接到我的项目中。我的 Angular 11 项目是使用 Ivy 编译器编译的。我的库正在使用 View Engine 编译器。 ng serve 命令使用 ngcc 将 Ivy 特定的附加功能添加到库中(dist 中的构建工件)
但是,这种方法不再适用于新的 Angular 11 项目。每当 watcher 重建库时,ng serve 服务的应用程序就会丢失轨道,需要重新启动。
我尝试将 angular 降级到 10.x 并同步库和应用程序项目中的 typescript 编译器版本。
重启项目的ng serve会导致:Tried to overwrite *.component.d.ts.__ivy_ngcc_bak with an ngcc back up file, which is disallowed.一直。在这种情况下,唯一有帮助的是重新启动 ng build <lib> --watch 进程。
在我看来,Ivy 的边缘状态已经彻底破坏了使用 npm link 的库开发体验。
有没有人知道 Angular 11 中的哪些变化导致了这个问题?
【问题讨论】:
-
添加 out 参数可能是一个修复它。
ng build --watch -o dist/。试一试吧!谢谢你:) -
似乎 -o (--output-path) 是最近才添加的。我的库项目仍然是 angular-cli 版本 10.2.3,不幸的是不支持 -o 标志。
标签: angular angular-cli ng-packagr angular-ivy