Lorsque j'essaie de créer un composant dans le cli angulaire, cela me montre cette erreur. Comment m'en débarrasser?
Erreur: plusieurs modules correspondent. Utilisez l'option skip-import pour ignorer l'importation du composant dans le module le plus proche.
J'utilise la version angular cli: 1.4.1
ng g c admin/manageUsers ---module ../app
Essayez ceci: cela fonctionne pour moi
ng generate component componentName --module=app.module
la source
Cela est dû au fait que la génération a essayé d'ajouter votre composant à un module, c'est-à-dire d'ajouter cette ligne
mais il a trouvé 2 modules.
Comme indiqué ici , ils l'ont corrigé à une situation où tant que dans le dossier racine src / app vous n'avez qu'un seul module, vous allez bien, alors déplacez simplement les modules secondaires vers un sous-dossier.
Sinon, vous devez utiliser
--module
la source
modules
sous - dossier, et tout va bien maintenant.Ça marche pour moi
la source
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 "composants" sous "src / app"
donc pour créer un composant sous un chemin spécifique, j'ai utilisé la syntaxe suivante:
exemple :
la source
CLI angulaire: 6.0.8
Nœud: 10.4.0
OS: linux x64
Angulaire: 6.0.4
Dans le cas où il y a 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 le NgModule 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 ATTENTION à la convention de dénomination! 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 , CLI se plaindra du message d'erreur et s'attendra à ce que vous fournissiez l'option --module pour ajouter automatiquement l'importation de composants:
ou
si vous préférez ajouter l'importation du composant manuellement
la source
-
fait l'affaire! J'avaislib-name.routing.module.ts
au lieu delib-name-routing.module.ts
.Il existe deux façons de résoudre ce problème.
1) Ignorez (en utilisant --skip-import dans la commande) l'import par défaut et créez un composant et une fois le composant créé, importez-le manuellement où vous voulez l'utiliser.
2) Indiquez explicitement le nom du module à l'endroit où vous souhaitez l'importer
la source
la source
J'obtenais une erreur en dessous lorsque j'essayais de créer un nouveau composant sous un dossier.
erreur: plusieurs modules correspondent. 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 un nouveau composant a été créé avec succès sous un dossier.
la source
Mon projet a été créé à l'aide de Visual Studio Community 2017 et il 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 lance:
la source
Lorsqu'il y a plus d'un module sous le dossier d'application, la génération d'un composant avec la commande ci-dessous échouera:
La raison en est que la CLI angulaire détecte plusieurs modules et ne sait pas dans quel module ajouter le composant. Donc, vous devez mentionner explicitement quel composant de module sera ajouté:
la source
si vous créez dans un module spécifique, allez sur ce chemin et exécutez ng gc componentname
sinon créer le premier module ng g module nom du module
cd arc / app / modulename aller au chemin modulename et créer le composant
la source
essayez l'en-tête du composant ng - application de module, cela fonctionne pour moi
la source
app.routing.module.ts
où l'erreurlorsque vous avez plusieurs modules, vous devez spécifier le nom du module
la source
lorsque vous avez plusieurs
module.ts
fichiers dans un module, vous devez spécifier pour quel fichier de module vous générez le composant.par exemple, j'ai partagé le dossier du module dans lequel j'ai
shared.module.ts
etmaterial.module.ts
comme çaet je veux générer un
sidebar
composant pourshared.module.ts
ensuite je vais exécuter la commande suivantesi vous souhaitez exporter le composant, exécutez la commande suivante
la source
CLI angulaire: 8.3.4 Nœud: 10.16.3 Angualr: 4.2.5
J'ai utilisé la commande "dotnet new angular" pour générer le projet, et il a généré 3 modules différents dans le dossier de l'application (bien qu'un test simple avec ng nouveau nom de projet) génère juste un seul module.
voir les modules dans votre projet et décider quel module vous voulez - puis spécifiez le nom
Vous pouvez en savoir plus sur les modules ici: https://angular.io/guide/architecture-modules
la source
Dans mon cas, il semble que ng ne soit pas enregistré dans mon chemin d'accès à l'environnement. J'utilise la commande npm run pour exécuter les commandes ng. Soyez conscient afin de passer des arguments dont vous avez besoin d'un supplément - selon la spécification d'exécution npm.
Exemple: npm exécuter ng gc composants / ordonnancement - --module = app
Ou: npm exécuter ng gc components / scheduling - --skip-import
la source
J'ai eu cet avertissement quand j'ai eu ceci dans la
angular.json
configuration:Une fois changé pour
"app"
tout fonctionnait parfaitement bien.la source
Juste pour ajouter une autre information à toute personne comme moi qui arrive le long d'une seule application.
J'ai eu mon application configurée avec le principal app.module.ts et j'ai eu le routage avec le module de routage dans son propre dossier sous l'application principale. J'ai traversé et fait un peu de «nettoyage» car j'avais quelques autres choses qui devaient être mieux organisées. Une chose que j'ai faite a été de déplacer le routing.module.ts vers le dossier racine; comme c'était le seul fichier du dossier, je pensais qu'il n'avait pas besoin de son propre dossier.
Cela a bien fonctionné au début, mais la prochaine fois que j'ai essayé de générer un nouveau composant (quelque temps plus tard, via l'IDE WebStorm), il a échoué avec ce message. Après avoir lu cela, j'ai essayé de remettre le module de routage dans un dossier séparé et cela a fonctionné à nouveau.
Alors attention aux autres, ne déplacez pas le module de routage dans votre dossier racine! Je suis sûr qu'il y a d'autres façons de gérer cela aussi, mais j'en suis satisfait dans son propre dossier pour l'instant et j'utilise le générateur IDE comme je l'étais auparavant.
la source
Vous devez donner le nom de module spécifié comme
Où
module-name
devriez-vous mettre à jour avec le composant nouvellement créé.la source
Comme un hack, en dessous des étapes, a fonctionné pour moi.
1) Déplacez les fichiers * .module.ts de src / app vers un emplacement hors du projet.
2) Exécuter la commande pour créer un composant
[ng g c component-name]
3) Reculez les fichiers * .module.ts vers src / app /
la source