当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当前回答
在我的例子中,ng似乎没有注册到我的环境路径中。我一直使用npm run命令来运行ng命令。注意,为了传递参数,你需要一个额外的参数——根据npm运行规范。
例子:
npm run ng g c components/scheduling **--** --module=app
Or:
npm run ng g c components/scheduling **--** --skip-import
其他回答
当app或lib有多个嵌套模块时
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
角CLI
ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts
NRWL NX Angular CLI
ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts
结果
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
我的项目是使用Visual Studio Community 2017创建的,它创建了3个独立的模块:app.browser。Module, app.server.module和app.shared.module
为了创建我的组件,我检查了上面的答案,发现我的模块是app.share .module。
所以,我跑:
ng g c componentName --module=app.shared.module
对我来说,这个命令工作:
ng g c new-component --module app
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
如果您希望手动添加组件的导入
如果您在特定的模块中创建,请进入该路径并运行 Ng g c组件名
否则先创建模块 模块名称
cd / app / modulename弧 进入modulename path并创建组件