当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当前回答
再补充一点信息给像我这样只有一个程序的人。
我用主app.module.ts设置了我的应用程序,我用路由模块在主应用程序下的自己的文件夹中进行路由。我浏览了一下,做了一些“清理”,因为我还有一些其他的东西需要更好地组织。我做的一件事是将routing.module.ts移动到根文件夹;因为它是文件夹中唯一的文件,我认为它不需要它自己的文件夹。
这一开始工作得很好,但下一次我试图生成一个新组件时(一段时间后,通过WebStorm IDE),它失败了。读完这篇文章后,我试着把路由模块放回一个单独的文件夹,它又工作了。
所以要提醒其他人,不要将路由模块移动到根文件夹中!我确信还有其他方法来处理这个问题,但我很高兴它现在在它自己的文件夹中,并使用IDE生成器,就像我以前一样。
其他回答
当有多个模块时,需要指定模块名
ng g c componentName --module=modulename.module
当app文件夹下有多个模块时,使用以下命令生成组件将失败:
ng generate component New-Component-Name
原因是angular CLI检测到多个模块,不知道该在哪个模块中添加组件。因此,您需要显式地提到将添加哪个模块组件:
ng generate component New-Component-Name --module=ModuleName
Angular CLI: 6.0.8 节点:10.4.0 操作系统:linux x64 角:6.0.4
如果有一个特性模块(例如manager.module.ts)在。"/manager"子文件夹),而路由模块被外部化到单独的NgModule中(例如manager-routing.module.ts),错误消息如下:
超过一个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
不会出现,并且组件已正确生成并添加到manager.module.ts模块。
但是要注意命名惯例!路由模块的名称必须以“-routing”结束!
如果给路由模块一个这样的名字,例如manager-router.module。ts时,CLI会报错,并希望你提供——module选项来自动添加组件导入:
ng generate component some-name --module=manager.module.ts
or
ng generate component some-name --skip-import
如果您希望手动添加组件的导入
作为一个黑客,下面的步骤,对我有用。
1)移动*.module。Ts文件从src/app到项目外的位置。
2)执行命令创建组件[ng g c component-name]
3)移回*.模块。Ts文件到src/app/
再补充一点信息给像我这样只有一个程序的人。
我用主app.module.ts设置了我的应用程序,我用路由模块在主应用程序下的自己的文件夹中进行路由。我浏览了一下,做了一些“清理”,因为我还有一些其他的东西需要更好地组织。我做的一件事是将routing.module.ts移动到根文件夹;因为它是文件夹中唯一的文件,我认为它不需要它自己的文件夹。
这一开始工作得很好,但下一次我试图生成一个新组件时(一段时间后,通过WebStorm IDE),它失败了。读完这篇文章后,我试着把路由模块放回一个单独的文件夹,它又工作了。
所以要提醒其他人,不要将路由模块移动到根文件夹中!我确信还有其他方法来处理这个问题,但我很高兴它现在在它自己的文件夹中,并使用IDE生成器,就像我以前一样。