Wenn ich versuche, eine Komponente im Winkelcli zu erstellen, wird mir dieser Fehler angezeigt. Wie werde ich es los?
Fehler: Mehrere Module stimmen überein. Verwenden Sie die Option "Skip-Import", um das Importieren der Komponente in das nächstgelegene Modul zu überspringen.
Ich verwende die eckige cli-Version: 1.4.1
Geben Sie das Modul mit dem Parameter --module an. Wenn das Hauptmodul beispielsweise app.module.ts ist, führen Sie Folgendes aus:
ng g c new-component --module app
Oder wenn Sie sich in einem anderen Verzeichnis befinden
ng g c component-name --module ../
Dies ist darauf zurückzuführen, dass bei der Generierung versucht wurde, Ihre Komponente einem Modul hinzuzufügen, d. H. Diese Zeile hinzuzufügen
import { MyComponent } from './Components/my-component/my-component.component';
aber es wurden 2 Module gefunden.
Wie hier beschrieben, wurde das Problem behoben, in dem Sie nur ein Modul haben, solange Sie im Root-Ordner "src/app" sind, also Sie sind in Ordnung, also nur verschieben Sie die Sekundärmodule in ein Unterobjekt -Mappe.
Ansonsten müssen Sie --module
verwenden.
Versuchen Sie folgendes: Es funktioniert für mich
ng generate component componentName --module=app.module
Es arbeitet für mich
ng g component component-name --skip-import
Nur ein kleines Update zu Zishas Antwort.
In meinem Projekt wurden alle Module in einem Ordner mit dem Namen "modules" abgelegt, und alle Komponenten befinden sich im Ordner "components" unter "src/app".
um eine Komponente unter einem bestimmten Pfad zu erstellen, habe ich folgende Syntax verwendet:
ng g c komponentenpfad/komponentenname --module module_path/modulname
beispiel:
ng g c components/login - Modulmodule/App
Angular CLI: 6.0.8
Knoten: 10.4.0
Betriebssystem: Linux x64
Angular: 6.0.4
Falls sich ein Feature-Modul (zB manager.module.ts im Unterordner "/ manager") befindet, wird das Routing-Modul in das separate NgModule (zB manager-routing.module)) externalisiert .ts) die Fehlermeldung:
Es passen mehr als ein Modul zusammen. Verwenden Sie die Option "Skip-Import", um das Importieren 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 BEACHTUNG die Namenskonvention! Der Name des Routing-Moduls muss mit "-routing" abschließen!
Wenn dem Routing-Modul ein Name gegeben wird, z. manager-router.module.ts, CLI wird sich mit der Fehlermeldung beschweren und erwartet, dass Sie die Option --module angeben, um den Komponentenimport automatisch hinzuzufügen:
ng generate component some-name --module=manager.module.ts
oder
ng generate component some-name --skip-import
wenn Sie den Import der Komponente lieber manuell hinzufügen möchten
Beim Versuch, eine neue Komponente unter einem Ordner zu erstellen, wurde eine Fehlermeldung angezeigt.
Fehler: Mehrere Module stimmen überein. Verwenden Sie die Option "Skip-Import", um das Importieren der Komponente in das nächstgelegene Modul zu überspringen.
Ich habe den folgenden Befehl verwendet und die neue Komponente wurde erfolgreich unter einem Ordner erstellt.
ng g c folderName/my_newComponent ---module ../app
Mein Projekt wurde mit Visual Studio Community 2017 erstellt und erstellt 3 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 laufe ich:
ng g c componentName --module=app.shared.module
Wenn sich mehr als ein Modul im App-Ordner befindet, schlägt das Generieren einer Komponente mit dem folgenden Befehl fehl:
ng generate component New-Component-Name
Der Grund dafür ist, dass die CLI 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:
ng generate component New-Component-Name --module=ModuleName
Wenn app oder lib mehrere verschachtelte Module haben
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
Angular CLI
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
Ergebnis
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
wenn Sie mehr als ein Modul haben, müssen Sie den Modulnamen angeben
ng g c componentName --module=modulename.module
try ng g Komponentenkopfzeile --module appes ist für mich Arbeit