Ich fange an, Angular-Cli zu verwenden und habe bereits viel gelesen, um eine Antwort darauf zu finden, was ich tun möchte ... kein Erfolg, also bin ich hierher gekommen.
Gibt es eine Möglichkeit, eine Komponente für ein neues Modul zu erstellen?
z.B: ng g module newModule
ng g component newComponent
(Wie füge ich diese Komponente zu newModule hinzu?)
weil das Angular-Cli-Standardverhalten darin besteht, alle neuen Komponenten darin zu platzieren app.module
. Ich möchte auswählen, wo sich meine Komponente befindet, damit ich separate Module erstellen kann und nicht alle meine Komponenten darin enthalten sind app.module
. Ist das mit Angular-Cli möglich oder muss ich das manuell machen?
quelle
ng g component moduleName/componentName
.--module
Option angeben :ng g component <your component> --module=<your module name>
quelle
--dry-run
, am Ende noch etwas hinzuzufügen , um zu sehen, was davon betroffen sein wird. Es ist eine nette Überprüfung derng g component path/to/myComponent --module=app.module.ts --dry-run
ist ein sehr nützlicher Befehl; Nur um sicherzustellen, dass Ihre Komponente im richtigen Verzeichnis erstellt wird.Ich bin mir nicht sicher, ob Alexander Ciesielskis Antwort zum Zeitpunkt des Schreibens richtig war, aber ich kann überprüfen, ob dies nicht mehr funktioniert. Es spielt keine Rolle, in welchem Verzeichnis des Projekts Sie die Angular-CLI ausführen. Wenn Sie tippen
Es wird eine Komponente generiert und in die Datei app.module.ts importiert
Die einzige Möglichkeit, CLI zum automatischen Importieren in ein anderes Modul zu verwenden, besteht in der Angabe
Dabei ist moduleName ein Modul, das Sie bereits in Ihrem Projekt definiert haben. Wenn der Modulname nicht vorhanden ist, wird die Komponente im Verzeichnis moduleName / newComponent abgelegt und dennoch in app.module importiert
quelle
ng g module newModule
2.ng g component new-module/newComponent
Laut ihm sollte ein neues Modul anstelle von newModule seinmkdir
einen Ordner und dann ng Komponente newComponent innerhalb des neu erstellten Ordners ausgeführt.ng g component moduleName/newComponent -m moduleName
ng generate module {modComName}
1) Erstellt den Ordner 2) Erstellt eine Moduldatei im gleichnamigen Ordner; der Befehlng generate component {modComName}
tatsächlich 1) Erstellt eine Komponentendatei im gleichnamigen Ordner 2) Modifiziert das Modul, um die Komponente zu importierenng
Fügt Importe am Ende des Arrays hinzu. aber Sie möchten vielleicht: "Die Reihenfolge der Routen in der Konfiguration ist wichtig und dies ist beabsichtigt."Ich habe keine Antwort gefunden, die zeigt, wie mit der CLI eine Komponente in einem Modulordner der obersten Ebene generiert wird, und die Komponente hat automatisch die Deklarationssammlung des Moduls hinzugefügt.
Führen Sie Folgendes aus, um das Modul zu erstellen:
Führen Sie Folgendes aus, um die Komponente im Ordner foo module zu erstellen und zur Deklarationssammlung von foo.module.ts hinzuzufügen:
Und das CLI wird das Modul und die Komponente wie folgt ausbauen:
--EDIT Die neue Version des eckigen Cli verhält sich anders. 1.5.5 möchte keinen Moduldateinamen, daher sollte der Befehl mit v1.5.5 lauten
quelle
--module
Argument; In den Dokumenten heißt es: "Ermöglicht die Angabe des deklarierenden Moduls." ;; Ich würde hinzufügen--module
spezifiziert, welches vorhandene Modul geändert werden soll , um das Modul zu importieren, das Sie erstellenSie können den folgenden Befehl ausprobieren, der Folgendes beschreibt:
Dann lautet Ihr Befehl wie folgt:
quelle
Verwenden Sie für Angular v4 und höher einfach:
quelle
Specified module does not exist
während das Modul vorhanden waruser-settings.module.ts
und Sie eine Komponente hinzufügen möchten, lautetpublic-info
der Befehl:ng g c PublicInfo -m user-settings
Das hat bei mir funktioniert:
Wenn Sie eine Komponente ohne deren Verzeichnis generieren möchten, verwenden Sie das
--flat
Flag.quelle
Dadurch wird ein Modul generiert, das
media
immodules
Ordner aufgerufen wird .Der erste Teil des Befehls
ng g c modules/media/picPick
generiert einen Komponentenordner namens "picPick
Insidemodules/media
Ordner", der unser neuesmedia
Modul enthält.Im zweiten Teil wird unsere neue
picPick
Komponente immedia
Modul deklariert, indem sie in die Moduldatei importiert und an dasdeclarations
Array dieses Moduls angehängt wird.quelle
Gehen Sie zur Modulebene / wir können uns auch in der Stammebene befinden und die folgenden Befehle eingeben
Beispiel:
quelle
Zuerst Modul generieren:
Dadurch wird ein Modulname-Ordner erstellt und dann zum Modulordner navigiert
Und danach Komponente generieren:
Verwenden Sie --flat, um keinen untergeordneten Ordner im Modulordner zu erstellen
quelle
Ich habe ähnliche Probleme mit mehreren Modulen in der Anwendung. Eine Komponente kann für jedes Modul erstellt werden. Bevor Sie eine Komponente erstellen, müssen Sie den Namen des jeweiligen Moduls angeben.
quelle
Verwenden Sie diesen einfachen Befehl:
users
: Ihr Modulname.userlist
: Ihr Komponentenname.quelle
Laut Angular-Dokumenten können Sie eine Komponente für ein bestimmtes Modul erstellen.
"Verzeichnisname" = wo die CLI das Funktionsmodul generiert hat
Beispiel: -
Dadurch wird ein Ordner für die neue Komponente im Kunden-Dashboard-Ordner generiert und das Funktionsmodul mit der CustomerDashboardComponent aktualisiert
quelle
Erster Lauf
ng g module newModule
. Dann renneng g component newModule/newModule --flat
quelle
Ich habe ein komponentenbasiertes untergeordnetes Modul mit einem bestimmten Stammordner erstellt
Den folgenden CLI-Befehl habe ich angegeben
Reparatur ist der Stammordner unseres untergeordneten Moduls
quelle
Ich bin heute auf dieses Problem gestoßen, als ich eine Angular 9-Anwendung erstellt habe. Ich habe den Fehler "Modul existiert nicht" erhalten, wenn ich das
.module.ts
oder.module
zum Modulnamen hinzugefügt habe . Die CLI benötigt nur den Namen des Moduls ohne Erweiterung. Angenommen, ich hätte einen Modulnamen :brands.module.ts
, war der Befehl, den ich benutzteEntfernen Sie das,
--dry-run
sobald Sie bestätigt haben, dass die Dateistruktur korrekt ist.quelle
Fügen Sie der Angular 4-App mithilfe der Angular-CLI eine Komponente hinzu
Verwenden Sie den Befehl, um der App eine neue Angular 4-Komponente hinzuzufügen
ng g component componentName
. Nach Ausführung dieses Befehls fügt Angular CLI einen Ordnercomponent-name
unter hinzusrc\app
. Außerdem werden die Referenzen derselbensrc\app\app.module.ts
automatisch zur Datei hinzugefügt .Eine Komponente muss eine
@Component
Dekorationsfunktion haben, gefolgt von einer,class
die bearbeitet werden mussexport
. Die@Component
Dekorationsfunktion akzeptiert Metadaten.Fügen Sie mithilfe der Angular CLI eine Komponente zu einem bestimmten Ordner der Angular 4-App hinzu
Verwenden Sie den Befehl, um einem bestimmten Ordner eine neue Komponente hinzuzufügen
ng g component folderName/componentName
quelle
Wenn Sie mehrere Apps in .angular-cli.json deklariert haben (z. B. wenn Sie an einem Funktionsmodul arbeiten)
Sie können :
-a steht für --app (Name)
quelle
Ich verwende diesen speziellen Befehl zum Generieren von Komponenten innerhalb eines Moduls.
Dieser Befehl generiert eine lokale Komponente für das Modul. oder Sie können das Verzeichnis zuerst durch Eingabe ändern.
und dann Komponente erstellen.
Hinweis: Der in <> eingeschlossene Code steht für benutzerspezifische Namen.
quelle
1.- Erstellen Sie Ihr Funktionsmodul wie gewohnt.
2.- Sie können den ROOT PATH Ihres Projekts in --module angeben (nur in --module, (/) root verweist auf Ihren PROJECT ROOT und IST NICHT DER SYSTEM ROOT !!! )
Echtes Beispiel:
Ausgabe:
Getestet mit Angular CLI: 9.1.4
quelle
Beispiel:
quelle
Ein gängiges Muster besteht darin, ein Feature mit einer Route, einem verzögert geladenen Modul und einer Komponente zu erstellen.
Route:
myapp.com/feature
app-routing.module.ts
Dateistruktur:
Dies kann alles in der CLI erfolgen mit:
Oder kürzer
Oder wenn Sie den Namen weglassen, werden Sie vom cli dazu aufgefordert. Sehr nützlich, wenn Sie mehrere Funktionen erstellen müssen
quelle
Erstellen Sie ein Modul, einen Service und eine Komponente in einem bestimmten Modul
quelle