Angular 库模块从工作区生成组件
Posted
技术标签:
【中文标题】Angular 库模块从工作区生成组件【英文标题】:Angular Library Module generate a component from workspace 【发布时间】:2019-05-29 07:14:57 【问题描述】:我有一个由三个项目创建的 Angular 工作区。以及我刚刚创建了一个库,我希望在其中包含可重用的模块。
通常对于项目(应用程序和库),我运行以下命令来生成模块或组件:
ng g c component componentName --project=UserPortal
ng g c component componentName --project=myLibrary
但是现在我需要在其中的模块中添加组件:
例如图书馆: 项目 我的图书馆 源代码 库 导航模块 在此处添加组件
对于应用项目模块: 项目 用户门户 源代码 应用程序 用户模块 在此处添加组件
通过运行,我能够在工作区的库项目中创建一个模块:
ng generate module navigation-module --project=myLibrary
目前我必须通过命令行进入该目录才能创建一个组件。但我有一种感觉,我可以像所有其他命令一样从 Workspace 执行此操作。这将是最有益的,而不是必须使用命令行或在目录之间来回切换。
快速概览:
-
在 Angular 工作区中创建一个库
在 Angular 工作区的库中创建了一个模块
想要在工作区的库中的模块内创建组件
【问题讨论】:
【参考方案1】:您可以通过提供正确的路径来为功能模块创建组件。你的情况
ng g c navigation-module/test-component --project=myLibrary
应该可以解决问题。
【讨论】:
如何让组件包含在模块声明中? @ciekawy:模块声明应该自动更新。在navigation-module.module.ts
文件中的示例中,TestComponentComponent
将被添加到声明数组中。
谢谢!我也发现了。我认为有更新模块文件选项的功能请求 - 毕竟所有原理图应该让开发人员的生活更轻松;)【参考方案2】:
您可以将自定义目录路径与ng
命令一起传递。
ng g c myfolder\mycomponent
但是您可能会错过拼写路径,并创建新文件夹或更改目标目录。出于这个原因,dryRun
非常有帮助。它显示更改将如何受到影响的输出。
验证结果后,您可以在不使用-d
的情况下运行相同的命令来进行更改。
--dryRun=true|false
如果为 true,则运行并报告活动而不写出结果。
默认值:假
别名:-d
官方文档:-https://angular.io/cli/generate
【讨论】:
以上是关于Angular 库模块从工作区生成组件的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 Architecture Overview
Angular 项目:如何为现有组件树中的每个组件添加模块?