ng在子目录中生成组件

时间:2018-01-04 20:11:41

标签: angular-cli angular5 ng-generate

我有以下目录结构

enter image description here

我想创建一个新页面,比方说,一个关于页面。 我想把它放在src / app / page / about / *

所以我试试:

ng generate component pages/about

但是我收到了这个错误:

Error: More than one module matches. Use skip-import option to skip importing the component into the closest module.
More than one module matches. Use skip-import option to skip importing the component into the closest module.

使用网页存储我的单独页面是个好主意吗? 如何使用angular-cli?

在子目录中生成组件

4 个答案:

答案 0 :(得分:29)

因为有2个模块(app.module.tsshared.module.ts),所以CLI不知道在哪个模块中声明你的组件。要解决这个问题,你必须告诉CLI你想要哪个模块使用module选项

声明您的组件
ng generate component pages/about --module=app.module
// or
ng generate component pages/about --module=shared.module

答案 1 :(得分:2)

一般需要在特定路径中生成组件,或者不要像上述情况那样生成多个父模块。

$> ng g组件路径/组件名称
   不需要src / app / path / component-name - >路径。如果它是AgnularCLI应用程序。

如果你提到src / app"错误:多个模块匹配。使用skip-import"发生。

答案 2 :(得分:1)

要创建组件作为任何新模块的一部分,您也可以执行以下操作:

cd newModule to change directory into the newModule folder

ng g c newComponent to create a component as a child of the module.

这对我有效。我收到的错误与您收到的相同。

答案 3 :(得分:1)

您有两个模块,但未指定要将新组件添加到哪个模块。

如果要将其添加到app模块中,则可以简单地使用:

ng generate component pages/about --module=app

同样可以将其添加到您的shared模块中,您可以使用:

ng generate component pages/about --module=shared

用简写形式,这些命令可以简化为:

ng g c pages/about --module=app
ng g c pages/about --module=shared

您的文件结构也很相似。我建议将pages目录中的所有文件向上移动到app目录中。