我有以下目录结构
我想创建一个新页面,比方说,一个关于页面。 我想把它放在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?
在子目录中生成组件答案 0 :(得分:29)
因为有2个模块(app.module.ts
,shared.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
目录中。