是否可以无需构建整个Angular项目,仅单独构建其下的子项目?
Angular多子应用独立构建方案
完全可以实现仅构建改动的单个子项目,无需每次全量构建main-app,操作逻辑如下:
适用前提
你当前已经可以通过ng build <子项目名>执行子项目构建,说明Angular工作区的多项目配置已经符合要求,只要满足以下条件,单独构建的子项目产物即可直接用于生产发布:
- 本次代码改动仅涉及对应子项目的私有目录,未修改main-app中的共享模块、全局路由骨架、全局依赖配置、
angular.json等公共资源 - 子项目的构建配置已正确声明对main-app共享模块的引用路径,无需依赖main-app的预构建产物即可独立完成编译
操作方法
- 仅修改单个子项目(例如client-app)时,直接执行对应子项目的生产构建命令即可:
构建完成后直接将产物替换生产环境中对应子应用的资源包即可,无需修改或重新构建main-app的现有产物。ng build client-app --configuration production - 仅当你修改了main-app的骨架代码、公共共享模块、全局样式/配置,或是升级了所有项目共用的依赖版本时,再执行全量构建即可。
效率优化
如果需要自动识别改动的子项目,可以使用Nx工具管理该Angular monorepo,它自带构建缓存和变更检测能力,可自动识别并仅构建有改动的项目,无需人工判断。
内容的提问来源于stack exchange,提问作者ScubaSteve
相关产品推荐
相关产品推荐

