我正在开发Angular库,并具有典型的设置,即在其中有我的库项目,然后在另一个项目中使用构建的库输出。
我希望能够监视库源文件并自动重建我的库。我还希望正在使用的应用程序在检测到我的库已被重建时进行重建。
在我的应用程序检测到库更改的情况下,我相信已经设置好了,因为ng serve
自动监视文件更改,并且在我的应用程序的tsconfig中,我的库的路径已映射到{构建库输出的{1}}文件夹。如果我手动更改dist文件夹中的这些文件之一,则会触发对我使用中的应用程序的重建,从而使该部分工作正常。
在监视库更改的情况下,我已经看到可以在构建命令中指定我的库名称和监视标志,因此:
dist
在package.json中定义了以下脚本:
ng build my-lib --watch
我假设我需要在一个单独的进程中生成我的库中的手表,所以我可能需要在我的任务中使用另一个脚本来创建和监视我的库?
然后在另一个进程上运行构建脚本,该脚本将为我使用的应用程序提供服务。
我确实尝试过此操作,但是我遇到"start": "npm run build && ng serve",
"build": "ng build && npm run bundle-styles",
"bundle-styles": "scss-bundle -c scss-bundle.config.json"
任务时遇到了问题,我需要在构建角度cli之后但开始观察更改之前执行该任务。我开始认为我可能需要使用bundle-styles
在库中开发更改以发现它们并在使用中的应用程序中重建时,这里的正确方法是什么?
谢谢
答案 0 :(得分:0)
对于简单的应用程序,您现有的设置是正确的。当我的应用程序加载时,我产生了两个进程,一个进程使用--watch构建一个库,另一个为我的主应用程序服务。但是,如果您开始做诸如捆绑式样式任务之类的复杂事情,或者在添加库组件然后在延迟加载的模块中引用它时发现ng serve
中断(发生在我的项目中),则应该咬一口项目符号并编写自定义脚本。就我而言,我需要从ng build lib-name --watch
获取输出,如果我读取到编译错误,则可以首先重新启动构建过程,如果仍然有编译错误,请通知我有关该错误的信息。同样,当库发生更改时,我经常需要重新保留主应用程序,因此,在库重建中不再有任何错误时,我将重新启动ng serve
进程。
我知道这不是理想的选择,但是如果您想做Angular团队尚未发展的事情,那么现有的ng
选项就不会削减它。