如何在含多入口点的Angular库中指定入口生成组件?
解决方案
你可以通过两种方式实现无需修改全局sourceRoot即可指定入口点生成组件:
方式1:单次生成时直接指定路径
执行生成命令时追加--path参数直接指定目标入口点的对应目录即可,示例如下:
# 示例:生成组件到common入口点的lib目录下 ng g component new-component --project ngx-eska-theme --path projects/ngx-eska-theme/common/src/lib
命令执行后组件会直接生成到你指定的路径下,不会受全局sourceRoot配置影响,适合临时生成少量文件的场景。
方式2:给每个入口点配置独立的子项目(推荐长期使用)
在angular.json的projects节点下,给每个入口点新增单独的项目配置:
// angular.json 示例配置 "projects": { "ngx-eska-theme": { // 原有主项目配置不变 }, // 新增common入口点的单独配置 "ngx-eska-theme-common": { "root": "projects/ngx-eska-theme/common", "sourceRoot": "projects/ngx-eska-theme/common/src", "projectType": "library", "schematics": {}, "architect": {} }, // 其他入口点同理新增对应配置 }
后续需要给对应入口点生成文件时,直接指定对应的子项目名即可,不需要再手动写路径:
ng g component new-component --project ngx-eska-theme-common
这种方式配置一次即可长期使用,也能适配模块、服务、指令等其他类型文件的生成需求。
内容的提问来源于stack exchange,提问作者Nimer Awad
相关产品推荐
相关产品推荐

