Wenn ich versuche, eine Komponente in der Winkel-CLI zu erstellen, wird mir dieser Fehler angezeigt. Wie werde ich es los?
Fehler: Mehr als ein Modul stimmt überein. Verwenden Sie die Option zum Überspringen des Imports, um den Import der Komponente in das nächstgelegene Modul zu überspringen.
Ich verwende Angular Cli Version: 1.4.1
ng g c admin/manageUsers ---module ../app
Versuchen Sie dies: Es funktioniert für mich
ng generate component componentName --module=app.module
quelle
Dies ist darauf zurückzuführen, dass die Generation versucht hat, Ihre Komponente einem Modul hinzuzufügen, dh diese Zeile hinzuzufügen
aber es wurden 2 Module gefunden.
Wie hier angegeben , haben sie es in einer Situation behoben, in der es Ihnen gut geht, solange Sie im Stammordner src / app nur 1 Modul haben. Verschieben Sie die sekundären Module einfach in einen Unterordner.
Ansonsten muss man verwenden
--module
quelle
modules
Unterordner verschoben , und jetzt ist alles in Ordnung.Es funktioniert für mich
quelle
Nur ein kleines Update zu Zishas Antwort.
In meinem Projekt wurden alle Module in einem Ordner namens "modules" abgelegt, und alle Komponenten wurden im Ordner "components" unter "src / app" abgelegt.
Um eine Komponente unter einem bestimmten Pfad zu erstellen, habe ich die folgende Syntax verwendet:
Beispiel:
quelle
Angular CLI: 6.0.8
Knoten: 10.4.0
Betriebssystem: Linux x64
Angular: 6.0.4
Falls sich ein Funktionsmodul (z. B. manager.module.ts im Unterordner "/ manager") befindet und das Routingmodul in das separate NgModule (z. B. manager-routing.module.ts ) ausgelagert ist, wird die folgende Fehlermeldung angezeigt :
Es stimmt mehr als ein Modul überein. Verwenden Sie die Option zum Überspringen des Imports, um den Import der Komponente in das nächstgelegene Modul zu überspringen.
wird nicht angezeigt und die Komponente wird ordnungsgemäß generiert und dem Modul manager.module.ts hinzugefügt .
ABER ACHTUNG der Namenskonvention! Der Name des Routing-Moduls muss mit " -routing " enden !
Wenn dem Routingmodul ein Name wie z. B. manager-router.module.ts zugewiesen wird, beschwert sich die CLI mit der Fehlermeldung und erwartet, dass Sie die Option --module angeben, um den Komponentenimport automatisch hinzuzufügen:
oder
Wenn Sie den Import der Komponente lieber manuell hinzufügen möchten
quelle
-
hat den Trick gemacht! Ich hattelib-name.routing.module.ts
stattlib-name-routing.module.ts
.Es gibt zwei Möglichkeiten, um dieses Problem zu lösen.
1) Überspringen Sie (mit dem Befehl --skip-import in) den Standardimport und erstellen Sie eine Komponente. Sobald die Komponente erstellt wurde, importieren Sie sie manuell, wo immer Sie sie verwenden möchten.
2) Geben Sie den Modulnamen explizit dort an, wo er importiert werden soll
quelle
quelle
Beim Versuch, eine neue Komponente unter einem Ordner zu erstellen, wurde der folgende Fehler angezeigt.
Fehler: Mehr als ein Modul stimmt überein. Verwenden Sie die Option zum Überspringen des Imports, um den Import der Komponente in das nächstgelegene Modul zu überspringen.
Ich habe den folgenden Befehl verwendet und eine neue Komponente wurde erfolgreich unter einem Ordner erstellt.
quelle
Mein Projekt wurde mit Visual Studio Community 2017 erstellt und erstellt drei separate Module: app.browser.module, app.server.module und app.shared.module
Um meine Komponenten zu erstellen, habe ich die obigen Antworten überprüft und festgestellt, dass mein Modul app.shared.module ist.
Also renne ich:
quelle
Wenn sich mehr als ein Modul im App-Ordner befindet, schlägt das Generieren einer Komponente mit dem folgenden Befehl fehl:
Der Grund dafür ist, dass die eckige CLI mehrere Module erkennt und nicht weiß, in welchem Modul die Komponente hinzugefügt werden soll. Sie müssen also explizit angeben, welche Modulkomponente hinzugefügt wird:
quelle
Wenn Sie in einem bestimmten Modul erstellen, gehen Sie zu diesem Pfad und führen Sie ng gc Komponentenname aus
sonst erst Modul erstellen ng g Modul Modulname
cd arc / app / modulename Gehen Sie zum Pfad modulename und erstellen Sie die Komponente
quelle
versuchen Sie ng g Komponenten-Header - Modul-App, es ist Arbeit für mich
quelle
app.routing.module.ts
daher den FehlerWenn Sie mehr als ein Modul haben, müssen Sie den Modulnamen angeben
quelle
Wenn Sie mehrere
module.ts
Dateien in einem Modul haben, müssen Sie angeben, für welche Moduldatei Sie eine Komponente generieren.Zum Beispiel habe ich einen freigegebenen Modulordner, in dem ich diesen habe
shared.module.ts
undmaterial.module.ts
magund ich möchte
sidebar
Komponente für generieren,shared.module.ts
dann werde ich folgenden Befehl ausführenWenn Sie die Komponente exportieren möchten, führen Sie den folgenden Befehl aus
quelle
Angular CLI: 8.3.4 Node: 10.16.3 Angualr: 4.2.5
Ich habe den Befehl "dotnet new angle" verwendet , um das Projekt zu generieren, und es wurden 3 verschiedene Module im App-Ordner generiert (obwohl ein einfacher Test mit ng new project-name nur ein einziges Modul generiert.
Sehen Sie sich die Module in Ihrem Projekt an und entscheiden Sie, welches Modul Sie möchten. Geben Sie dann den Namen an
Weitere Informationen zu Modulen finden Sie hier: https://angular.io/guide/architecture-modules
quelle
In meinem Fall scheint ng nicht in meinem Umgebungspfad registriert zu sein. Ich habe den Befehl npm run verwendet, um die ng-Befehle auszuführen. Beachten Sie, dass Sie zum Übergeben von Argumenten ein Extra benötigen - gemäß der npm-Laufspezifikation.
Beispiel: npm run ng gc components / scheduling - --module = app
Oder: npm run ng gc components / scheduling - --skip-import
quelle
Ich hatte diese Warnung, als ich diese in der
angular.json
Konfiguration hatte:Wenn geändert,
"app"
funktionierte alles einwandfrei.quelle
Nur um eine weitere Information für jemanden wie mich hinzuzufügen, der nur eine einzige Anwendung hat.
Ich hatte meine Anwendung mit der Hauptanwendung app.module.ts eingerichtet und hatte das Routing mit dem Routingmodul in einem eigenen Ordner unter der Hauptanwendung. Ich ging durch und räumte auf, da ich ein paar andere Dinge hatte, die besser organisiert werden mussten. Eine Sache, die ich getan habe, war, die Datei routing.module.ts in den Stammordner zu verschieben. Da es die einzige Datei im Ordner war, dachte ich, dass es keinen eigenen Ordner benötigt.
Dies funktionierte zunächst einwandfrei, aber als ich das nächste Mal versuchte, eine neue Komponente zu generieren (einige Zeit später über die WebStorm-IDE), schlug dies mit dieser Nachricht fehl. Nachdem ich dies gelesen hatte, versuchte ich, das Routing-Modul wieder in einen separaten Ordner zu legen, und es funktionierte wieder.
Beachten Sie also die Warnung an andere, verschieben Sie das Routing-Modul nicht in Ihren Stammordner! Ich bin mir sicher, dass es auch andere Möglichkeiten gibt, damit umzugehen, aber ich bin damit zufrieden, dass ich es jetzt in einem eigenen Ordner habe und den IDE-Generator wie zuvor verwende.
quelle
Sie müssen den angegebenen Modulnamen wie angeben
Wo
module-name
soll das sein, das Sie mit neu erstellter Komponente aktualisieren möchten.quelle
Als Hack, unten Schritte, für mich gearbeitet.
1) Verschieben Sie * .module.ts-Dateien von src / app an einen Speicherort außerhalb des Projekts.
2) Führen Sie den Befehl aus, um eine Komponente zu erstellen
[ng g c component-name]
3) Verschieben Sie die * .module.ts-Dateien zurück nach src / app /
quelle