当我尝试在角度cli中创建一个组件时,它向我显示了这个错误.我怎么摆脱它?
错误:多个模块匹配.使用skip-import选项跳过将组件导入最近的模块.
我正在使用angular cli版本:1.4.1
小智 525
使用--module参数指定模块.例如,如果主模块是app.module.ts,请运行以下命令:
ng g c new-component --module app
Run Code Online (Sandbox Code Playgroud)
或者,如果您在其他目录中
ng g c component-name --module ../
Run Code Online (Sandbox Code Playgroud)
bre*_*per 43
这是因为一代人试图将您的组件添加到模块,即添加此行
import { MyComponent } from './Components/my-component/my-component.component';
Run Code Online (Sandbox Code Playgroud)
但它找到了2个模块.
如前所述在这里,他们是固定的地方,只要在根的src/app文件夹,你只有1个模块,你没事的情况,所以只是将次级模块移动到子文件夹.
否则你必须使用 --module
小智 25
它对我有用
ng g component component-name --skip-import
Run Code Online (Sandbox Code Playgroud)
Uni*_*der 10
有两种方法可以解决这个问题。
1) 跳过(在命令中使用 --skip-import)默认导入和创建组件,一旦创建了组件,就可以在任何您想要使用的地方手动导入它。
ng generate component my-component --skip-import
Run Code Online (Sandbox Code Playgroud)
2)在您希望导入的位置明确提供模块名称
ng generate component my-component --module=my-module.module
Run Code Online (Sandbox Code Playgroud)
小智 9
只是Zisha答案的一个小小的更新.
在我的项目中,所有模块都放在一个名为"modules"的文件夹中,所有组件都放在"src/app"下的"components"文件夹中
所以要在特定路径下创建组件,我使用以下语法:
ng gc components_path/component_name --module modules_path/module_name
例如:
ng gc components/login --module modules/app
Angular CLI:6.0.8
节点:10.4.0
OS: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
Run Code Online (Sandbox Code Playgroud)
要么
ng generate component some-name --skip-import
Run Code Online (Sandbox Code Playgroud)
如果您希望手动添加组件的导入
当 app 或 lib 有多个嵌套模块时
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
Run Code Online (Sandbox Code Playgroud)
角 CLI
ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts
Run Code Online (Sandbox Code Playgroud)
NRWL NX 角 CLI
ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts
Run Code Online (Sandbox Code Playgroud)
结果
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
Run Code Online (Sandbox Code Playgroud)
就我而言,ng 似乎没有注册到我的环境路径中。我一直在使用 npm run 命令来运行 ng 命令。请注意,为了传递参数,--根据 npm run 规范,您需要额外的参数。
例子:
npm run ng g c components/scheduling **--** --module=app
Run Code Online (Sandbox Code Playgroud)
或者:
npm run ng g c components/scheduling **--** --skip-import
Run Code Online (Sandbox Code Playgroud)
尝试在文件夹下创建新组件时出现以下错误。
错误:多个模块匹配。使用skip-import选项跳过将组件导入到最近的模块中。
我使用了以下命令,并在文件夹下成功创建了新组件。
ng g c folderName/my_newComponent ---module ../app
Run Code Online (Sandbox Code Playgroud)
小智 5
您必须给出指定的模块名称,例如
ng g c your-component --module module-name
Run Code Online (Sandbox Code Playgroud)
module-name您应该在哪里使用新创建的组件进行更新。
| 归档时间: |
|
| 查看次数: |
185195 次 |
| 最近记录: |