当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当前回答
有两种方法可以解决这个问题。
1)跳过(在命令中使用——Skip -import)默认导入并创建组件,一旦组件创建完成,就可以手动将它导入到任何你想使用它的地方。
ng generate component my-component --skip-import
2)在你想导入模块的地方显式地提供模块名
ng generate component my-component --module=my-module.module
其他回答
这是由于生成试图将您的组件添加到模块,即添加这一行
import { MyComponent } from './Components/my-component/my-component.component';
但它找到了两个模块。
正如这里所述,他们修复了一种情况,只要在根src/app文件夹中只有一个模块,就可以了,所以只需将辅助模块移动到子文件夹中。
否则你必须使用——module
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
如果您希望手动添加组件的导入
你必须在.module扩展名之前只提到模块的起始名
例如,如果模块名是user-account.module.ts 然后在命令中提供喜欢
ng g c newComponent --module=user-account
作为一个黑客,下面的步骤,对我有用。
1)移动*.module。Ts文件从src/app到项目外的位置。
2)执行命令创建组件[ng g c component-name]
3)移回*.模块。Ts文件到src/app/
试试这个:它对我很有效
生成组件componentName——module=app.module