Angular CLI-检测库更改以重建使用消耗量的应用程序

问题描述 投票:3回答:1

我正在开发一个Angular库,并具有典型的设置,即在其中有我的库项目,然后在另一个项目中使用构建的库输出。

我希望能够监视库源文件并自动重建我的库。我还希望我的使用中的应用程序在检测到我的库已被重建时进行重建。

[在我的应用程序检测到库更改的情况下,我相信已经设置好了,因为ng serve自动监视文件更改,并且在我的应用程序的tsconfig中,我的库的路径映射到dist文件夹构建库输出的位置。如果我手动更改dist文件夹中的这些文件之一,则会触发对我使用中的应用程序的重建,从而使该部分工作正常。

在监视库更改的情况下,我已经看到可以在构建命令中指定我的库名称和监视标志,因此:

ng build my-lib --watch

我在package.json中定义了以下脚本:

"start": "npm run build && ng serve",
"build": "ng build && npm run bundle-styles",
"bundle-styles": "scss-bundle -c scss-bundle.config.json"

我假设我需要在一个单独的进程中生成我的库中的手表,所以我可能需要在我的任务中使用另一个脚本来创建和监视我的库?

然后在另一个进程上运行将为我使用的应用程序提供服务的构建脚本。

我确实尝试过此操作,但是我在bundle-styles任务中遇到了问题,我需要在构建角度cli之后但在开始观察更改之前执行该任务。我开始认为我可能需要使用gulp

之类的东西来创建自己的自定义监视任务

[在库中开发更改以查看在使用中的应用程序中发现并重建它们时的正确方法是什么?

感谢

angular angular-cli angular-cli-v7
1个回答
0
投票

对于简单的应用程序,您现有的设置是正确的。当我的应用程序加载时,我产生了两个进程,一个进程使用--watch构建一个库,另一个为我的主应用程序服务。但是,如果您开始执行诸如捆绑式样式任务之类的复杂任务,或者添加库组件然后在延迟加载的模块中引用它时发现ng serve中断(这在我的项目中发生),则您应该咬紧牙关并编写一个自定义脚本。就我而言,我需要从ng build lib-name --watch中获取输出,如果我读取到编译错误,则可以先重新启动构建过程,如果仍然有编译错误,请通知我有关该错误的信息。同样,当库发生更改时,我经常需要重新保留主应用程序,因此,在库重建中不再有任何错误时,我将重新启动ng serve流程。

[我知道这不是理想的选择,但是如果您想做Angular团队还没有发展起来的事情,那么现有的ng选项就无法解决。

© www.soinside.com 2019 - 2024. All rights reserved.