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 项目:如何为现有组件树中的每个组件添加模块?

如何将@angular/fire 添加到 Nx 工作区(Angular 项目)?

错误找不到模块'@angular/material

Angular入门教程

使用来自另一个模块的组件