当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当前回答
这是由于生成试图将您的组件添加到模块,即添加这一行
import { MyComponent } from './Components/my-component/my-component.component';
但它找到了两个模块。
正如这里所述,他们修复了一种情况,只要在根src/app文件夹中只有一个模块,就可以了,所以只需将辅助模块移动到子文件夹中。
否则你必须使用——module
其他回答
当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
在我的例子中,ng似乎没有注册到我的环境路径中。我一直使用npm run命令来运行ng命令。注意,为了传递参数,你需要一个额外的参数——根据npm运行规范。
例子:
npm run ng g c components/scheduling **--** --module=app
Or:
npm run ng g c components/scheduling **--** --skip-import
使用——module参数指定模块。 例如,如果主模块是app.module。Ts,运行这个:
ng g c new-component --module app
或者如果你在另一个目录
ng g c component-name --module ../
这是由于生成试图将您的组件添加到模块,即添加这一行
import { MyComponent } from './Components/my-component/my-component.component';
但它找到了两个模块。
正如这里所述,他们修复了一种情况,只要在根src/app文件夹中只有一个模块,就可以了,所以只需将辅助模块移动到子文件夹中。
否则你必须使用——module
有两种方法可以解决这个问题。
1)跳过(在命令中使用——Skip -import)默认导入并创建组件,一旦组件创建完成,就可以手动将它导入到任何你想使用它的地方。
ng generate component my-component --skip-import
2)在你想导入模块的地方显式地提供模块名
ng generate component my-component --module=my-module.module