Quando tento criar um componente no CLI angular, ele está me mostrando esse erro. Como faço para me livrar dele ?
Erro: Mais de um módulo corresponde. Use a opção skip-import para pular a importação do componente para o módulo mais próximo.
Estou usando a versão angular do cli: 1.4.1
ng g c admin/manageUsers ---module ../app
Tente isto: Está funcionando para mim
ng generate component componentName --module=app.module
fonte
Isso é causado desde que a geração tentou adicionar seu componente a um módulo, ou seja, adicionar esta linha
mas encontrou 2 módulos.
Conforme declarado aqui , eles o consertaram em uma situação em que, desde que na pasta raiz src / app você tenha apenas 1 módulo, você esteja bem, então mova os módulos secundários para uma subpasta.
Caso contrário, você tem que usar
--module
fonte
modules
subpasta, e tudo está bom agora.Está funcionando para mim
fonte
Apenas uma pequena atualização da resposta de Zisha.
No meu projeto, todos os módulos foram colocados em uma pasta chamada "modules" e todos os componentes foram colocados na pasta "components" em "src / app"
para criar um componente sob um caminho específico, usei a seguinte sintaxe:
exemplo:
fonte
CLI angular: 6.0.8
Nó: 10.4.0
SO: linux x64
Angular: 6.0.4
Caso exista um módulo de recurso (por exemplo, manager.module.ts dentro da subpasta "/ manager"), com o módulo de roteamento externalizado no NgModule separado (por exemplo, manager-routing.module.ts ), a mensagem de erro:
Mais de um módulo corresponde. Use a opção skip-import para pular a importação do componente para o módulo mais próximo.
não aparece e o componente é gerado corretamente e incluído no módulo manager.module.ts .
Mas tenha cuidado com a convenção de nomenclatura! o nome do módulo de roteamento deve terminar com " -routing "!
Se o módulo de roteamento receber um nome como, por exemplo, manager-router.module.ts , a CLI se queixará da mensagem de erro e esperará que você forneça a opção --module para adicionar automaticamente a importação do componente:
ou
se você preferir adicionar a importação do componente manualmente
fonte
-
fez o truque! Eu tinha emlib-name.routing.module.ts
vez delib-name-routing.module.ts
.Existem duas maneiras de resolver esse problema.
1) Pule (usando --skip-import no comando) a importação padrão e crie o componente; assim que o componente for criado, importe-o manualmente, sempre que você quiser usá-lo.
2) Forneça explicitamente o nome do módulo para onde você deseja que ele seja importado
fonte
fonte
Eu estava recebendo o erro abaixo ao tentar criar um novo componente em uma pasta.
erro: Mais de um módulo corresponde. Use a opção skip-import para pular a importação do componente para o módulo mais próximo.
Eu usei o comando abaixo e o novo componente foi criado com êxito em uma pasta.
fonte
Meu projeto foi criado usando a Comunidade do Visual Studio 2017 e cria 3 módulos separados: app.browser.module, app.server.module e app.shared.module
Para criar meus componentes, verifiquei as respostas acima e achei meu módulo como app.shared.module.
Então, eu corro:
fonte
Quando houver mais de um módulo na pasta do aplicativo, a geração de um componente com o comando abaixo falhará:
O motivo é que a CLI angular detecta vários módulos e não sabe em qual módulo adicionar o componente. Portanto, você precisa mencionar explicitamente qual componente do módulo será adicionado:
fonte
se você estiver criando em um módulo específico, vá para esse caminho e execute ng gc componentname
caso contrário, crie o módulo primeiro ng g módulo nome do módulo
cd arc / app / modulename vá para o caminho do modulename e crie o componente
fonte
tente ng g cabeçalho componente - aplicativo módulo é trabalho para mim
fonte
app.routing.module.ts
portanto, o erroquando você tiver mais de um módulo, precisará especificar o nome do módulo
fonte
Quando você possui vários
module.ts
arquivos dentro de um módulo, precisa especificar para qual arquivo de módulo você está gerando componente.por exemplo, eu tenho pasta módulo compartilhado dentro do qual eu tenho
shared.module.ts
ematerial.module.ts
assime eu quero gerar
sidebar
componente parashared.module.ts
então eu vou executar o seguinte comandose você deseja exportar o componente, execute o seguinte comando
fonte
CLI angular: 8.3.4 Nó: 10.16.3 Angualr: 4.2.5
Eu usei o comando "dotnet new angular" para gerar o projeto, e ele gerou 3 módulos diferentes na pasta do aplicativo (embora um teste simples com o novo nome do projeto gere apenas um único módulo.
veja os módulos em seu projeto e decida qual módulo você deseja - depois especifique o nome
Você pode ler mais sobre os módulos aqui: https://angular.io/guide/architecture-modules
fonte
No meu caso, parece que ng não está registrado no caminho do meu ambiente. Eu tenho usado o comando npm run para executar os comandos ng. Esteja ciente de que, para passar argumentos, você precisa de um extra - conforme a especificação de execução do npm.
Exemplo: npm executa componentes / programação do gc - --module = app
Ou: npm executa componentes / programação do gc - --skip-import
fonte
Eu tive esse aviso quando tinha isso em
angular.json
config:Quando alterado para
"app"
tudo funcionou perfeitamente bem.fonte
Apenas para adicionar outra informação a alguém assim como eu, que acontece com apenas um aplicativo.
Eu configurei meu aplicativo com o app.module.ts principal e fiz o roteamento com o módulo de roteamento em sua própria pasta, no aplicativo principal. Eu passei por isso e fiz algumas 'limpezas', pois tinha algumas outras coisas que precisavam ser melhor organizadas. Uma coisa que fiz foi mover o routing.module.ts para a pasta raiz; já que era o único arquivo na pasta, achei que não precisava de sua própria pasta.
Isso funcionou bem no começo, mas na próxima vez que tentei gerar um novo componente (algum tempo depois, através do IDE WebStorm), ele falhou com esta mensagem. Depois de ler isso, tentei colocar o módulo de roteamento novamente em uma pasta separada e funcionou novamente.
Portanto, observe os avisos a outras pessoas, não mova o módulo de roteamento para a pasta raiz! Tenho certeza de que existem outras maneiras de lidar com isso também, mas estou feliz com isso em sua própria pasta por enquanto e usando o gerador de IDE como eu estava anteriormente.
fonte
Você deve fornecer o nome do módulo especificado como
Onde
module-name
deve ser que você deseja atualizar com o componente recém-criado.fonte
Como um hack, abaixo das etapas, funcionou para mim.
1) Mova os arquivos * .module.ts de src / app para um local fora do projeto.
2) Executar comando para criar componente
[ng g c component-name]
3) Volte os arquivos * .module.ts para src / app /
fonte