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 de cli: 1.4.1
ng g c admin/manageUsers ---module ../app
Prueba esto: está funcionando para mí
ng generate component componentName --module=app.module
fuente
Esto se debe a que la generación intentó agregar su componente a un módulo, es decir, agregar esta línea
pero encontró 2 módulos.
Como se indicó aquí , 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, tienes que usar
--module
fuente
modules
subcarpeta, y todo está bien ahora.Me esta funcionando
fuente
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:
ejemplo:
fuente
CLI angular: 6.0.8
Nodo: 10.4.0
SO: 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:
o
si prefiere agregar la importación del componente manualmente
fuente
-
hizo el truco! Tenía enlib-name.routing.module.ts
lugar delib-name-routing.module.ts
.Hay dos formas de resolver este problema.
1) Omita (usando --skip-import en el comando) importar y crear componente por defecto y una vez que se crea el componente, impórtelo manualmente donde quiera que lo use.
2) Proporcione el nombre del módulo explícitamente donde desea que se importe
fuente
fuente
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.
fuente
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:
fuente
Cuando hay más de un módulo en la carpeta de la aplicación, generará un componente con el siguiente comando fallará:
La razón es que la 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á:
fuente
si está creando en un módulo específico, vaya a esa ruta y ejecute ng gc componentname
de lo contrario, cree el módulo primero ng g module modulename
cd arc / app / modulename ir a la ruta del nombre del módulo y crear el componente
fuente
intente ng g header de componente - aplicación de módulo es trabajo para mí
fuente
app.routing.module.ts
por lo tanto el errorcuando tiene más de un módulo, debe especificar el nombre del módulo
fuente
cuando tiene varios
module.ts
archivos dentro de un módulo, debe especificar para qué archivo de módulo está generando el componente.por ejemplo, he compartido la carpeta del módulo dentro de la cual tengo
shared.module.ts
y mematerial.module.ts
gusta estoy quiero generar un
sidebar
componente parashared.module.ts
luego ejecutaré el siguiente comandosi desea exportar el componente, ejecute el siguiente comando
fuente
CLI angular: 8.3.4 Nodo: 10.16.3 Angualr: 4.2.5
Utilicé el comando "dotnet new angular" para generar el proyecto, y ha generado 3 módulos diferentes en la carpeta de la aplicación (aunque una prueba simple con ng nuevo nombre de proyecto solo genera un solo módulo.
vea los módulos en su proyecto y decida qué módulo desea, luego especifique el nombre
Puede leer más sobre los módulos aquí: https://angular.io/guide/architecture-modules
fuente
En mi caso, parece que ng no está registrado en la ruta de mi entorno. He estado usando el comando npm run para ejecutar los comandos ng. Tenga en cuenta para pasar argumentos necesita un extra, según la especificación de ejecución npm.
Ejemplo: npm run ng gc components / scheduling - --module = app
O: npm ejecutar ng componentes / programación de gc - --skip-import
fuente
Tuve esta advertencia cuando tuve esto en
angular.json
config:Cuando se cambió a
"app"
todo funcionó perfectamente bien.fuente
Solo para agregar otra información a esto para cualquier persona como yo que tenga una sola aplicación.
Tenía mi aplicación configurada con app.module.ts principal y tenía enrutamiento con el módulo de enrutamiento en su propia carpeta debajo de la aplicación principal. Revisé e hice algunas 'limpiezas' ya que tenía algunas otras cosas que debían organizarse mejor. Una cosa que hice fue mover el routing.module.ts a la carpeta raíz; Como era el único archivo en la carpeta, pensé que no necesitaba su propia carpeta.
Esto funcionó bien al principio, pero la próxima vez que intenté generar un nuevo componente (algún tiempo después, a través del IDE de WebStorm) falló con este mensaje. Después de leer esto, intenté volver a colocar el módulo de enrutamiento en una carpeta separada y funcionó nuevamente.
Entonces, tenga en cuenta la advertencia a los demás, ¡no mueva el módulo de enrutamiento a su carpeta raíz! Estoy seguro de que también hay otras formas de lidiar con esto, pero estoy contento con eso en su propia carpeta por ahora y usando el generador IDE como lo estaba anteriormente.
fuente
Tienes que dar el nombre del módulo específico como
¿Dónde
module-name
debería estar que desea actualizar con el componente recién creado?fuente
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) Ejecutar comando para crear componente
[ng g c component-name]
3) Mueva hacia atrás los archivos * .module.ts a src / app /
fuente