angular - que - Error: más de un módulo coincide. Use la opción de omitir importación para omitir la importación del componente al módulo más cercano
que es un modulo en angular (13)
Cuando intento crear un componente en el cli angular, me muestra este error. Como me deshago de esto ?
Error: más de un módulo coincide. Utilice la opción de omisión de importación para omitir la importación del componente al módulo más cercano.
Estoy usando la versión angular cli: 1.4.1
Cuando la aplicación o lib tienen múltiples módulos anidados
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
CLI angular
ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts
NRWL NX CLI angular
ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts
Resultado
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
Como truco, debajo de los pasos, funcionó para mí.
1) Mueva los archivos * .module.ts de src / app a una ubicación fuera del proyecto.
2) Ejecute el comando para crear el componente
[ng gc component-name]
3) Mueva hacia atrás los archivos * .module.ts a src / app /
Cuando hay más de un módulo en la carpeta de la aplicación, generará un componente con el siguiente comando fallará:
ng generate component New-Component-Name
La razón es que CLI angular detecta múltiples módulos y no sabe en qué módulo agregar el componente. Por lo tanto, debe mencionar explícitamente qué componente del módulo se agregará:
ng generate component New-Component-Name --module=ModuleName
Especifique el módulo usando el parámetro --module. Por ejemplo, si el módulo principal es app.module.ts, ejecute esto:
ng g c new-component --module app
O si estás en otro directorio entonces
ng g c component-name --module ../
Esto se debe a que la generación intentó agregar su componente a un módulo, es decir, agregar esta línea
ng generate component componentName --module=app.module
pero encontró 2 módulos.
Como se indicó here , lo arreglaron en una situación en la que, en la carpeta raíz src / app, solo tiene 1 módulo, está bien, así que simplemente mueva los módulos secundarios a una subcarpeta.
De lo contrario, debe usar
--module
Me esta funcionando
ng g component component-name --skip-import
Mi proyecto fue creado usando Visual Studio Community 2017 y crea 3 módulos separados: app.browser.module, app.server.module y app.shared.module
Para crear mis componentes, verifiqué las respuestas anteriores y encontré que mi módulo era app.shared.module.
Entonces, corro:
ng g c componentName --module=app.shared.module
Obtuve el siguiente error al intentar crear un nuevo componente en una carpeta.
error: más de un módulo coincide. Utilice la opción de omisión de importación para omitir la importación del componente al módulo más cercano.
He usado el siguiente comando y el nuevo componente se creó con éxito en una carpeta.
ng g c folderName/my_newComponent ---module ../app
Solo una pequeña actualización de la respuesta de Zisha.
En mi proyecto, todos los módulos se colocaron en una carpeta llamada "módulos" y todos los componentes se colocaron en la carpeta "componentes" en "src / app"
así que para crear un componente bajo una ruta específica, utilicé la siguiente sintaxis:
ng gc components_path / component_name --module modules_path / module_name
ejemplo:
ng gc components / login --módulos de módulos / aplicación
cuando tiene más de un módulo, debe especificar el nombre del módulo
ng g c componentName --module=modulename.module
pruebe ng g header de componente - aplicación de módulo, es trabajo para mí
CLI angular: 6.0.8
Nodo: 10.4.0
OS: linux x64
Angular: 6.0.4
En caso de que haya un módulo de características (por ejemplo, manager.module.ts dentro de la subcarpeta "/ manager") con el módulo de enrutamiento externo en el NgModule separado (por ejemplo, manager-routing.module.ts ), el mensaje de error:
Más de un módulo coincide. Utilice la opción de omisión de importación para omitir la importación del componente al módulo más cercano.
no aparece y el componente se genera y agrega correctamente al módulo manager.module.ts .
¡PERO TEN CUIDADO la convención de nombres! ¡el nombre del módulo de enrutamiento debe terminar con " -enrutamiento "!
Si el módulo de enrutamiento recibe un nombre como, por ejemplo, manager-router.module.ts , la CLI se quejará con el mensaje de error y esperará que proporcione la opción --module para agregar automáticamente la importación del componente:
ng generate component some-name --module=manager.module.ts
o
ng generate component some-name --skip-import
si prefiere agregar la importación del componente manualmente
Prueba esto: está funcionando para mí
import { MyComponent } from ''./Components/my-component/my-component.component'';