当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当我尝试在angular cli中创建一个组件时,它显示了这个错误。我怎样才能摆脱它呢?
错误:多个模块匹配。使用skip-import选项可以跳过将组件导入到最近的模块。
我使用的是angular cli版本:1.4.1
当前回答
Angular CLI: 8.3.1
当你有多个模块时。Ts文件,您需要指定为哪个模块文件生成组件。
ng g c modulefolder/componentname --module=modulename.module
例如,我有一个共享模块文件夹,里面有共享的.module.ts和material.module.ts,就像这样
shared
> shared.module.ts
> material.module.ts
我想为shared.module.ts生成侧边栏组件 然后我将运行以下命令
ng g c shared/sidebar --module=shared.module
如果要导出组件,则运行以下命令
ng g c shared/sidebar --module=shared.module --export
其他回答
再补充一点信息给像我这样只有一个程序的人。
我用主app.module.ts设置了我的应用程序,我用路由模块在主应用程序下的自己的文件夹中进行路由。我浏览了一下,做了一些“清理”,因为我还有一些其他的东西需要更好地组织。我做的一件事是将routing.module.ts移动到根文件夹;因为它是文件夹中唯一的文件,我认为它不需要它自己的文件夹。
这一开始工作得很好,但下一次我试图生成一个新组件时(一段时间后,通过WebStorm IDE),它失败了。读完这篇文章后,我试着把路由模块放回一个单独的文件夹,它又工作了。
所以要提醒其他人,不要将路由模块移动到根文件夹中!我确信还有其他方法来处理这个问题,但我很高兴它现在在它自己的文件夹中,并使用IDE生成器,就像我以前一样。
在我的例子中,ng似乎没有注册到我的环境路径中。我一直使用npm run命令来运行ng命令。注意,为了传递参数,你需要一个额外的参数——根据npm运行规范。
例子:
npm run ng g c components/scheduling **--** --module=app
Or:
npm run ng g c components/scheduling **--** --skip-import
Angular CLI: 8.3.1
当你有多个模块时。Ts文件,您需要指定为哪个模块文件生成组件。
ng g c modulefolder/componentname --module=modulename.module
例如,我有一个共享模块文件夹,里面有共享的.module.ts和material.module.ts,就像这样
shared
> shared.module.ts
> material.module.ts
我想为shared.module.ts生成侧边栏组件 然后我将运行以下命令
ng g c shared/sidebar --module=shared.module
如果要导出组件,则运行以下命令
ng g c shared/sidebar --module=shared.module --export
如果您在特定的模块中创建,请进入该路径并运行 Ng g c组件名
否则先创建模块 模块名称
cd / app / modulename弧 进入modulename path并创建组件
试试这个:它对我很有效
生成组件componentName——module=app.module