web-dev-qa-db-fra.com

Comment générer vos classes dans un dossier spécifique avec Angular 2 CLI?

Je génère généralement des classes avec le angular 2 cli avec la commande suivante:

ng g class todo

Comment puis-je dire à la CLI de générer les classes dans un dossier particulier, par exemple un dossier de modèles.

La documentation contient un exemple dans lequel ils génèrent un composant dans un dossier spécifique, mais l'option de classe n'a pas abouti.

J'ai essayé les options suivantes:

ng g class models/todo

ng g class ../models todo

ng g class models todo

Ils aboutissent soit à une erreur indiquant que le chemin est invalide, ce qui me fait penser que l'option est prise en charge mais que je ne le découvre pas ou, dans le cas de cette dernière, fusionne le nom du dossier souhaité avec le nom de la classe.

29
George Bora

Les éléments générés pour le Angular CLI sont relatifs ...

si vous êtes dans le répertoire racine (ou dans le répertoire source), vous êtes perçu comme étant dans le répertoire de l'application ...

~/me/foo > ng g c bar
// ~/me/foo/src/app/bar/bar.component*

~/me/foo/src > ng g c bar
// ~/me/foo/src/app/bar/bar.component*

si vous êtes dans le répertoire de l'application ou plus bas dans la structure des dossiers, vous serez généré à l'endroit où vous vous trouvez ...

~/me/foo/src/app/feature > ng g c bar
// ~/me/foo/src/app/feature/bar/bar.component*

~/me/foo/src/app/feature > ng g c ../bar
// ~/me/foo/src/app/bar/bar.component*

Remarque: si vous essayez de générer dans un répertoire qui n'existe pas, cela entraînera une erreur ...

~/me/foo/src/app > ng g c a/b/c/d/e/f/g/bar
// Error
34
Brocco

Pour créer un composant à exécuter dans le dossier models de votre projet, assurez-vous que vous vous trouvez dans le dossier racine du projet et tapez:

ng g c/models/todo

De même, si vous souhaitez spécifier le nom de fichier du module de déclaration, vous pouvez utiliser l'option -m.

Par exemple, si vous avez un module de modèles et souhaitez mettre à jour ce module pour déclarer le nouveau composant de la tâche à effectuer:

ng g c/modèles/modèle todo -m

Cordialement

9
Ivan Maia
ng generate component my-new-component

ng g component my-new-component # using the alias

les composants supportent la génération de chemin relatif

si dans le répertoire src/app/feature/ et tu cours

ng g component new-cmp

votre composant sera généré dans src/app/feature/new-cmp

mais si tu devais courir

ng g component ../newer-cmp

votre composant sera généré dans src/app/newer-cmp

ça marche aussi pour les cours

vérifier: Github angular-cli

5
Mourad Idrissi
 ng g cl model/UserInfo
works fine in angular5
4

Pour générer une classe dans Angular4/5/6

Faites un clic droit sur le dossier dans lequel vous voulez créer la classe et sélectionnez le dossier ouvert dans le terminal

puis à l'intérieur du terminal utiliser

ng g class classname --type = model

2
ayush mishra
ng g cl models//todo-class

résultat ~/project/src/app/models/todo-class.ts

export class TodoClass {}
1
Elton Sandré

ajoutant à Karthikeyan Karunanithi une réponse simple,

ng g i model/UserInfo

fonctionne très bien si vous vouliez une interface ...

1
Robotnik

https://github.com/angular/angular-cli#generating-components-directives-pipes-and-services

Génération de composants, Classes , Directives, Gardes, Interfaces, Enums, Pipes et Services, Modules , Bibliothèques

Vous pouvez utiliser la commande ng generate (ou simplement ng g) pour générer des artefacts Angular:

ng generate component my-new-component
ng g component my-new-component # using the alias

les composants supportent la génération de chemin relatif

si dans le répertoire src/app/feature/et que vous exécutez

ng g component new-cmp

votre composant sera généré dans src/app/feature/new-cmp

mais si tu devais courir

ng g component ./newer-cmp

votre composant sera généré dans src/app/newer-cmp

si dans le répertoire src/app, vous pouvez également exécuter

ng g component feature/new-cmp

et votre composant sera généré dans src/app/feature/new-cmp

Vous pouvez trouver tous les plans possibles dans le tableau ci-dessous:

Scaffold    Usage
Component   ng g component my-new-component
Directive   ng g directive my-new-directive
Pipe    ng g pipe my-new-pipe
Service ng g service my-new-service
**Class ng g class my-new-class**
Guard   ng g guard my-new-guard
Interface   ng g interface my-new-interface
Enum    ng g enum my-new-enum
Module  ng g module my-module

angular-cli ajoutera automatiquement une référence aux composants, directives et tuyaux dans app.module.ts. Si vous devez ajouter cette référence à un autre module personnalisé, procédez comme suit:

ng g module new-module pour créer un nouveau module

appel ng g component new-module/new-component

Cela devrait ajouter le nouveau composant, la nouvelle directive ou la nouvelle référence de canal au nouveau module que vous avez créé.

1
Byron