Wie generiere ich Komponenten in einem bestimmten Ordner mit Angular-Cli?


220

Ich verwende angualr4 mit angle-cli und kann mit dem folgenden Befehl eine neue Komponente erstellen.

E:\HiddenWords>ng generate component plainsight

Aber ich muss eine untergeordnete Komponente in der Ebene generieren. Gibt es eine Möglichkeit, mit Angular-Cli zu tun?


15
ng generieren Sie Ihre Komponente / Pfad / aus / der / App / Ordner / Plainsight
maxime1992

4
wie @Maxime erwähnt, oder CD in das Verzeichnis
Z. Bagley

Antworten:


124

Das erstellt ng g component plainsight/some-nameein neues Verzeichnis, wenn wir es verwenden.

Die endgültige Ausgabe wird sein:

plainsight/some-name/some-name.component.ts

Um dies zu vermeiden, verwenden Sie die Option flat. ng g component plainsight/some-name --flat Die Dateien werden generiert, ohne dass ein neuer Ordner erstellt wird

plainsight/some-name.component.ts

11
Die Option --flat ist genau das, wonach ich gesucht habe!
Missgeschick

1
@ user3611927 --flat ist die Antwort, da vorhandene Ordner verwendet werden und nur Ordner erstellt werden, die nicht vorhanden sind. Perfekt!! Dies sollte das Standardverhalten IMHO sein
Andrew Day

38

Schnelle, einfache und fehlerfreie Methode

Wenn Sie eine Komponente in einem app/componentOrdner erstellen möchten, führen Sie die folgenden Schritte aus

  1. Klicken Sie mit der rechten Maustaste auf den Ordner, in dem Sie eine Komponente erstellen möchten
  2. Open in Command PromptOption auswählen
  3. Geben Sie im neuen Terminal (Sie sehen den ausgewählten Pfad) ein ng g c my-new-component

Sie können diesen Vorgang auch über dieses Bild überprüfen

Geben Sie hier die Bildbeschreibung ein


1
Du bist ein Genie oder ich bin einfach nur doof ... Bester Weg überhaupt!
Ap0st0l

19

ng g c component-name

So geben Sie einen benutzerdefinierten Speicherort an: ng g c specific-folder/component-name

Hier component-namewird in einem bestimmten Ordner erstellt.

Similarl Ansatz zur Erzeugung von anderen Komponenten wie verwendet werden directive, pipe, service, class, guard, interface, enum, module, usw.


12

kürzerer Code zum Generieren der Komponente: ng g c component-name
um ihren Speicherort anzugeben:ng g c specific-folder/component-name


Zusätzliche Informationen
kürzerer Code zum Generieren der Direktive: ng g d directive-name
um den Speicherort anzugeben:ng g d specific-folder/directive-name



4

Die oben genannten Optionen haben bei mir nicht funktioniert, da die CLI im Gegensatz zum Erstellen eines Verzeichnisses oder einer Datei im Terminal beim Generieren einer Komponente standardmäßig den Pfad src / app zu dem von Ihnen eingegebenen Pfad hinzufügt .

Wenn ich die Komponente wie folgt aus meinem Haupt-App-Ordner generiere (FALSCHER WEG)

ng g c ./src/app/child/grandchild 

Die Komponente, die generiert wurde, war folgende:

src/app/src/app/child/grandchild.component.ts

also musste ich nur tippen

ng g c child/grandchild 

Hoffentlich hilft das jemandem


3

Ich hatte kein Glück mit den obigen Antworten (einschließlich --flat), aber was für mich funktionierte war:

cd path/to/specific/directory

Von dort lief ich die ng g c mynewcomponent


1

Einfach

ng g component plainsight/some-name

Es wird ein "Plainsight" -Ordner erstellt und eine Namenskomponente darin generiert.


1

Versuchen zu benutzen

ng g component plainsight/some-name.component.ts

Oder versuchen Sie es manuell, wenn Sie sich wohler fühlen.


1

Sobald Sie im Verzeichnis Ihres Projekts sind. Verwenden Sie cd path/to/directorydann verwenden Sie ng g c component_name --spec=falsees automatisiert alles und ist fehlerfrei

die g cMittel erzeugen Komponente


1

Wechseln Sie in der Eingabeaufforderung oder im Projektterminal zum Projektordner.

Führen Sie cmd: ng gc Komponentenname aus

Geben Sie hier die Bildbeschreibung ein


1

Angular CLI bietet alle Befehle, die Sie für Ihre App-Entwicklung benötigen. Für Ihre speziellen Anforderungen können Sie einfach ng g( ng generate) verwenden, um die Arbeit zu erledigen.

ng g c directory/component-namegeneriert eine component-nameKomponente im directoryOrdner.

Im Folgenden finden Sie eine Übersicht einiger einfacher Befehle, die Sie in Ihrer Anwendung verwenden können.

  1. ng g c comp-nameoder ng generate component comp-nameum eine Komponente mit dem Namen 'comp-name' zu erstellen
  2. ng g s serv-nameoder ng generate service serv-nameum einen Dienst mit dem Namen 'serv-name' zu erstellen
  3. ng g m mod-nameoder ng generate module mod-nameum ein Modul mit dem Namen 'mod-name' zu erstellen
  4. ng g m mod-name --routingoder ng generate module mod-name --routingum ein Modul mit dem Namen 'mod-name' mit eckigem Routing zu erstellen

Hoffe das hilft!

Viel Glück!


1

Wenn Sie VSCode verwenden, sollten Sie die Angular Console verwenden

Es bietet eine Schnittstelle für die Angular CLI. Sie sehen eine Option zum Festlegen des Pfads.

Die Angular CLI ist immens leistungsfähig und erweiterbar. Tatsächlich gibt es so viele Funktionen, dass es für Entwickler hilfreich ist, die verschiedenen Konfigurationsoptionen für jeden Befehl zur Verfügung zu haben.

Mit Angular Console erhalten Sie Empfehlungen und können selbst die am leichtesten vergessenen oder selten verwendeten Funktionen aufrufen!

Angular Console ist in erster Linie eine produktivere Möglichkeit, mit den Funktionen der Angular CLI zu arbeiten.


0

Um eine Komponente zu erstellen, müssen Sie zunächst Folgendes verwenden: -

  • ng gc Komponentenname

    Mit dem obigen Befehl wird eine neue Komponente in einem Ordner mit dem
    oben angegebenen (Komponentennamen) erstellt.

Wenn Sie jedoch eine Komponente innerhalb einer anderen Komponente oder in einem bestimmten Ordner erstellen müssen: -

  • ng gc Komponentenname / newComponentName

0

Notwendigkeit der Verwendung von --dryRun bei Verwendung eines benutzerdefinierten Verzeichnisses

Sie können Ihren benutzerdefinierten Verzeichnispfad zusammen mit dem ngBefehl übergeben.

ng g c myfolder\mycomponent

Es besteht jedoch die Möglichkeit, dass Sie den Pfad verpassen und entweder ein neuer Ordner erstellt wird oder das Zielverzeichnis geändert wird. Aus diesem Grund dryRunist sehr hilfreich. Es wird eine Ausgabe angezeigt, wie die Änderungen beeinflusst werden.
Geben Sie hier die Bildbeschreibung ein

Nach Überprüfung des Ergebnisses können Sie denselben Befehl ausführen, ohne -ddie Änderungen vornehmen zu müssen.

--dryRun = true | false

Wenn true, werden Aktivitäten ausgeführt und gemeldet, ohne dass Ergebnisse aufgeschrieben werden.

Standard: false

Aliase: -d

Offizielles Dokument: - https://angular.io/cli/generate

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.