web-dev-qa-db-fra.com

Erreur: plus d'un module correspond. Utilisez l'option skip-import pour ignorer l'importation du composant dans le module le plus proche.

Lorsque j'essaie de créer un composant dans la cli angulaire, il me montre cette erreur. Comment puis-je m'en débarrasser?

Erreur: plus d'un module correspond. Utilisez l'option skip-import pour ignorer l'importation du composant dans le module le plus proche.

J'utilise la version angulaire cli: 1.4.1 

118
Ish Man

Spécifiez le module à l'aide du paramètre --module. Par exemple, si le module principal est app.module.ts, lancez ceci:

ng g c new-component --module app

Ou si vous êtes dans un autre répertoire alors

ng g c component-name --module ../
302
zisha

Essayez ceci: Cela fonctionne pour moi

ng generate component componentName --module=app.module
24
Shurvir Mori

Ça marche pour moi

ng g component component-name --skip-import
11

Juste une petite mise à jour de la réponse de Zisha. 

Dans mon projet, tous les modules ont été placés dans un dossier appelé "modules" et tous les composants sont placés dans le dossier "components" sous "src/app"

 folder structure

donc pour créer un composant sous un chemin spécifique, j'ai utilisé la syntaxe suivante: 

ng g c chemin_composants/nom_composant --module chemin_modules/nom_module

exemple : 

ng g c composants/connexion - modules modules/app

7
Saleem Khan

CLI angulaire: 6.0.8
Noeud: 10.4.0
OS: linux x64
Angular: 6.0.4

Dans le cas où il existe un module de fonctionnalité (par exemple, manager.module.ts à l'intérieur du sous-dossier par exemple "/ manager") avec le module de routage externalisé dans un module séparé (par exemple, manager-routing.module.ts ) le message d'erreur:

Plus d'un module correspond. Utilisez l'option skip-import pour ignorer l'importation du composant dans le module le plus proche.

n'apparaît pas et le composant est correctement généré et ajouté au module manager.module.ts .

MAIS SOYEZ PRUDENT la convention de nommage! le nom du module de routage doit se terminer par " -routing "!

Si le module de routage reçoit un nom tel que par exemple manager-router.module.ts , la CLI se plaindre du message d'erreur et s'attend à ce que vous fournissiez l'option --module pour ajouter automatiquement l'importation du composant:

ng generate component some-name --module=manager.module.ts

ou

ng generate component some-name --skip-import

si vous préférez ajouter manuellement l'importation du composant

5
pchemeque

J'obtenais une erreur en dessous lorsque j'essayais de créer un nouveau composant dans un dossier.

erreur: plus d'un module correspond. Utilisez l'option skip-import pour ignorer l'importation du composant dans le module le plus proche.

J'ai utilisé la commande ci-dessous et le nouveau composant a été créé avec succès dans un dossier.

 ng g c folderName/my_newComponent ---module ../app
1
Shakeer Hussain

Mon projet a été créé avec Visual Studio Community 2017 et crée 3 modules séparés: app.browser.module, app.server.module et app.shared.module.

Afin de créer mes composants, j'ai vérifié les réponses ci-dessus et trouvé que mon module était app.shared.module.

Alors, je cours:

ng g c componentName --module=app.shared.module
1
Matheus Maximo

S'il y a plus d'un module sous le dossier app, la génération d'un composant avec la commande ci-dessous échouera:

ng generate component New-Component-Name

La raison est angulaire. La CLI détecte plusieurs modules et ne sait pas dans quel module ajouter le composant. Donc, vous devez mentionner explicitement quel composant du module sera ajouté:

ng generate component New-Component-Name --module=ModuleName
0
Palash Roy

Quand app ou lib ont plusieurs modules imbriqués

myApp
  > src
    > app
      app.module.ts
      > routes
        > login
          > auth
          login.module.ts

CLI angulaire

ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts 

NRWL NX Angular CLI

ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts

Résultat

myApp
  > src
    > app
      app.module.ts
      > routes
        > login
          > auth
            > my-auth
              my-auth.component.ts etc...
          login.module.ts
0
SoEzPz

lorsque vous avez plus d'un module, vous devez spécifier le nom du module 

 ng g c componentName --module=modulename.module 
0
priya_21

essayer ng en-tête de composant --module appit est un travail pour moi

0