Come generare componenti in una cartella specifica con angular-cli?


223

Sto usando angualr4 con angular-cli e sono in grado di creare un nuovo componente con il seguente comando.

E:\HiddenWords>ng generate component plainsight

Ma ho bisogno di generare un componente figlio all'interno della pianura. C'è un modo di fare con angular-cli?


15
Genera componente tuo / percorso / da / l'app / cartella / plainsight
maxime1992

4
come menzionato da @Maxime, o cd nella directory
Z. Bagley,

Risposte:


125

La ng g component plainsight/some-namefa un nuova directory quando l'usiamo.

L'output finale sarà:

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

Per evitarlo, usa l' opzione flat ng g component plainsight/some-name --flat e genererà i file senza creare una nuova cartella

plainsight/some-name.component.ts

12
l'opzione --flat è quello che stavo cercando!
incidente

1
@utente3611927 --flat è la risposta poiché utilizzerà le cartelle esistenti e creerà solo cartelle che non esistono. Perfetto!! Questo dovrebbe essere il comportamento predefinito IMHO
Andrew Day,

40

Metodo rapido, semplice ed esente da errori

vale a dire che si desidera creare un componente in una app/componentcartella, quindi seguire questi passaggi

  1. Fare clic con il tasto destro sulla cartella in cui si desidera creare il componente
  2. Seleziona Open in Command Promptun'opzione
  3. Nel nuovo terminale (vedrai il percorso selezionato), quindi digita ng g c my-new-component

Inoltre puoi controllare questo processo attraverso questa immagine

inserisci qui la descrizione dell'immagine


1
Sei un genio o sto solo fingendo ficcanaso ... Il modo migliore di sempre!
Ap0st0l

19

ng g c component-name

Per specificare la posizione personalizzata: ng g c specific-folder/component-name

qui component-nameverrà creato all'interno della cartella specifica.

Approccio Similarl può essere utilizzato per generare altri componenti come directive, pipe, service, class, guard, interface, enum, module, etc.


12

codice più breve per generare il componente: ng g c component-name
per specificare la sua posizione:ng g c specific-folder/component-name


Ulteriori informazioni
codice più breve per generare direttiva: ng g d directive-name
per specificare la sua posizione:ng g d specific-folder/directive-name



4

Le opzioni di cui sopra non funzionavano per me perché a differenza della creazione di una directory o di un file nel terminale, quando la CLI genera un componente, aggiunge il percorso src / app per impostazione predefinita al percorso inserito.

Se generi il componente dalla mia cartella dell'app principale in questo modo (WRONG WAY)

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

il componente che è stato generato era questo:

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

quindi ho dovuto solo digitare

ng g c child/grandchild 

Spero che questo aiuti qualcuno


3

Non ho avuto fortuna con le risposte sopra (incluso --flat), ma quello che ha funzionato per me è stato:

cd path/to/specific/directory

Da lì, ho eseguito il ng g c mynewcomponent


1

Semplice

ng g component plainsight/some-name

Creerà la cartella "plainsight" e genererà un componente con qualche nome al suo interno.


1

Prova ad usare

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

Oppure provalo manualmente, se ti senti più a tuo agio.


1

Una volta che sei nella directory del tuo progetto. usa cd path/to/directoryquindi usa ng g c component_name --spec=falseautomatizza tutto ed è privo di errori

i g cmezzi generano il componente



1

La CLI angolare fornisce tutti i comandi necessari per lo sviluppo dell'app. Per le tue esigenze specifiche, puoi facilmente usare ng g( ng generate) per completare il lavoro.

ng g c directory/component-namegenererà il component-namecomponente nella directorycartella.

Di seguito è riportata una mappa di alcuni semplici comandi che è possibile utilizzare nella propria applicazione.

  1. ng g c comp-nameo ng generate component comp-nameper creare un componente con il nome 'comp-name'
  2. ng g s serv-nameo ng generate service serv-nameper creare un servizio con il nome 'serv-name'
  3. ng g m mod-nameo ng generate module mod-nameper creare un modulo con il nome 'mod-name'
  4. ng g m mod-name --routingo ng generate module mod-name --routingper creare un modulo con il nome 'mod-name' con routing angolare

Spero che questo ti aiuti!

In bocca al lupo!


1

Se si utilizza VSCode, considerare l'utilizzo della console angolare

Fornisce un'interfaccia per l'interfaccia della riga di comando angolare. Vedrai un'opzione per specificare il percorso.

La CLI angolare è immensamente potente ed estensibile. In effetti, ci sono così tante funzionalità che è utile per gli sviluppatori avere tutte le diverse opzioni di configurazione per ogni comando disponibile.

Con Angular Console, otterrai consigli e sarai in grado di estrarre anche le funzionalità più facilmente dimenticate o utilizzate raramente!

Angular Console è innanzitutto un modo più produttivo di lavorare con ciò che offre la CLI angolare.


0

Innanzitutto per creare un componente è necessario utilizzare: -

  • di nome componente gc

    Usando sopra il comando Nuovo componente verrà creato in una cartella con
    (nome componente) specificato sopra.

Ma se è necessario creare un componente all'interno di un altro componente o in una cartella specifica: -

  • da gc nome componente / newComponentName

0

È necessario utilizzare --dryRun quando si utilizza la directory personalizzata

È possibile passare il percorso della directory personalizzata insieme al ngcomando.

ng g c myfolder\mycomponent

Ma ci sono possibilità che ti manchi l'incantesimo del percorso e che venga creata una nuova cartella o che cambi la directory di destinazione. Per questo motivo dryRunè molto utile. Visualizza un output di come le modifiche saranno influenzate.
inserisci qui la descrizione dell'immagine

Dopo aver verificato il risultato è possibile eseguire lo stesso comando senza -dapportare le modifiche.

--dryRun = true | false

Se vero, scorre e segnala l'attività senza scrivere i risultati.

Predefinito: falso

Alias: -d

Doc ufficiale: - https://angular.io/cli/generate

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.