当我尝试在角度cli中创建一个组件时,它向我显示了这个错误。我该如何摆脱它?
错误:多个模块匹配。使用skip-import选项跳过将组件导入最近的模块。
我正在使用angular cli版本:1.4.1
答案 0 :(得分:375)
使用--module参数指定模块。 例如,如果主模块是app.module.ts,请运行:
ng g c new-component --module app
或者,如果您在其他目录中,那么
ng g c component-name --module ../
答案 1 :(得分:33)
这是因为代数试图将您的组件添加到模块,即添加此行
--module
但它找到了2个模块。
如前所述here,他们修复了这种情况,只要在根src / app文件夹中只有1个模块,你就可以了,所以只需 移动第二个模块到子文件夹。
否则你必须使用{{1}}
答案 2 :(得分:31)
试试这个:这对我有用
ng generate component componentName --module=app.module
答案 3 :(得分:14)
这对我有用
ng g component component-name --skip-import
答案 4 :(得分:8)
Zisha的回答只是一个小小的更新。
在我的项目中,所有模块都放在一个名为“modules”的文件夹中,所有组件都放在“src / app”下的“components”文件夹中
所以要在特定路径下创建组件,我使用以下语法:
ng g c components_path / component_name --module modules_path / module_name
示例:
ng g c components / login --module modules / app
答案 5 :(得分:5)
Angular CLI:6.0.8
节点:10.4.0
操作系统:linux x64
Angular:6.0.4
如果在例如" / manager"子文件夹中有一个功能模块(例如 manager.module.ts ),路由模块将外部化为单独的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
或
ng generate component some-name --skip-import
如果您希望手动添加组件的导入
答案 6 :(得分:2)
有两种方法可以解决此问题。
1)跳过(在命令中使用--skip-import)默认的导入并创建组件,一旦创建了组件,则将其手动导入到您想使用它的任何地方。
ng generate component my-component --skip-import
2)在要导入的模块上明确提供模块名称
ng generate component my-component --module=my-module.module
答案 7 :(得分:1)
我的项目是使用Visual Studio Community 2017创建的,它创建了3个独立的模块:app.browser.module,app.server.module和app.shared.module
为了创建我的组件,我检查了上面的答案,发现我的模块是app.shared.module。
所以,我跑:
ng g c componentName --module=app.shared.module
答案 8 :(得分:1)
尝试在文件夹下创建新组件时出现错误提示。
错误:多个模块匹配。使用跳过导入选项可将组件跳过导入到最近的模块中。
我已经使用以下命令,并且在文件夹下成功创建了新组件。
ng g c folderName/my_newComponent ---module ../app
答案 9 :(得分:1)
如果要在特定模块中创建,请转到该路径并运行 ng g c组件名称
其他先创建模块 ng g模块的模块名
cd arc / app / modulename 转到模块名称路径并创建组件
答案 10 :(得分:0)
对我来说这个命令有效:
ng g c new-component --module app
答案 11 :(得分:0)
您必须给指定的模块名称
ng g c your-component --module module-name
您要在module-name
中使用新创建的组件进行更新。
答案 12 :(得分:0)
只需为像我这样的碰巧只有一个应用程序的任何人添加另一条信息。
我使用主app.module.ts设置了我的应用程序,并且使用主应用程序下自己文件夹中的路由模块进行了路由。我经历了一些“清理工作”,因为我还有其他一些事情需要更好地组织。我做的一件事是将routing.module.ts移到根文件夹;因为它是文件夹中的唯一文件,所以我认为它不需要它自己的文件夹。
起初这很好,但是下一次我尝试生成一个新组件(一段时间后,通过WebStorm IDE)时,它失败并显示此消息。阅读完此内容后,我尝试将路由模块放回一个单独的文件夹中,然后又可以正常工作了。
因此请注意警告他人,请勿将路由模块移至您的根文件夹!我敢肯定还有其他方法可以处理此问题,但是我现在对它在自己的文件夹中并像以前一样使用IDE生成器感到满意。
答案 13 :(得分:0)
在result.__doc__ = func.__doc__
配置中有此警告时:
angular.json
更改为"prefix": "app_ng"
时,一切正常。
答案 14 :(得分:0)
就我而言,似乎ng未注册到我的环境路径中。我一直在使用npm run命令来运行ng命令。请注意,要传递参数,您需要额外的内容-根据npm run规范。
示例: npm运行ng c组件/计划- --module = app
或: npm运行ng c组件/计划- --skip-import
答案 15 :(得分:0)
Angular CLI:8.3.4 节点:10.16.3 Angualr:4.2.5
我使用了“ dotnet新角度” 命令生成了项目,它已经在app文件夹中生成了3个不同的模块(尽管使用 ng new project-name 进行了简单的测试>只会生成一个模块。
查看项目中的模块并确定所需的模块-然后指定名称
ng g c componentName --module=[name-of-your-module]
您可以在此处阅读有关模块的更多信息: https://angular.io/guide/architecture-modules
答案 16 :(得分:0)
Angular CLI:8.3.1
当模块中有多个module.ts
文件时,需要指定要为哪个模块文件生成组件。
ng g c modulefolder/componentname --module=modulename.module
例如,例如,我有一个共享模块文件夹,其中有shared.module.ts
和material.module.ts
这样的
shared
> shared.module.ts
> material.module.ts
,我想为sidebar
生成shared.module.ts
组件
然后我将运行以下命令
ng g c shared/sidebar --module=shared.module
如果要导出组件,请运行以下命令
ng g c shared/sidebar --module=shared.module --export
答案 17 :(得分:0)
当应用或库具有多个嵌套模块时
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
Angular 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
答案 18 :(得分:0)
拥有多个模块时,需要指定模块名称
ng g c componentName --module=modulename.module
答案 19 :(得分:0)
在app文件夹下有多个模块时,使用以下命令生成组件将失败:
ng generate component New-Component-Name
原因是角度CLI会检测到多个模块,并且不知道要在哪个模块中添加组件。因此,您需要明确提及要添加的模块组件:
ng generate component New-Component-Name --module=ModuleName
答案 20 :(得分:0)
尝试g组件标头 - 模块应用 这对我有用
答案 21 :(得分:-1)
作为一个黑客,下面的步骤,为我工作。
1)将* .module.ts文件从src / app移动到项目外的位置。
2)执行命令以创建组件[ng g c component-name]
3)将* .module.ts文件移回src / app /