Je sais que c'est une mauvaise pratique, mais jumelle avec moi:
J'utilise Angular-CLI et en particulier ng g
pour générer toutes mes classes. Cependant, aucun fichier de test *.spec.ts
ne m'intéresse et je sais qu'il existe deux indicateurs (--inline-template
, --inline-style
) pour gérer les CSS et HTML en ligne au lieu fichiers séparés . et pour les spécifications l'indicateur par défaut est défini sur true --spec
Donc, pour chaque parcours, oui, je peux le faire ng g c foo --it --is --spec=false
Mais comment désactiver la création de fichiers de test globalement? y at-il un réglage par défaut pour cela?
Franchement, j'ai fait des choses comme (ça n'a pas marché) :
ng set spec=false --global
Nous avons ensuite essayé de configurer le fichier de paramètres ts src/tsconfig.json
en remplissant le tableau d'exclusion.
"exclude": [
"**/*.spec.ts"
]
Vous pouvez exécuter cette commande pour désactiver la génération de fichier de spécification pour un type de fichier spécifique:
ng set defaults.spec.FILETYPE false
Par exemple:
ng set defaults.spec.component false // Won't generate spec files for .component files
Sinon, vous pouvez simplement désactiver toute génération de fichier de spécifications à partir du fichier angular-cli.json.
{
...
"defaults": {
"spec": {
"class": false,
"component": false,
"directive": false,
"module": false,
"pipe": false,
"service": false
}
}
}
La configuration (pour la génération de spécifications, par exemple) peut être effectuée manuellement ou avec l’interface CLI angulaire.
Configurer manuellement dans angular.json
:
Toutes les options configurables par type de fichier sont affichées ( Options schématiques ).
{
// ...
"schematics": {
"@schematics/angular:component": {
"changeDetection": "Default",
"export": false,
"flat": false,
"inlineStyle": false,
"inlineTemplate": false,
"module": "",
"prefix": "",
"selector": "",
"skipImport": false,
"spec": true,
"styleext": "css",
"viewEncapsulation": "Emulated"
},
"@schematics/angular:module": {
"commonModule": true,
"flat": false,
"module": "",
"routing": false,
"routingScope": "Child",
"spec": true
},
"@schematics/angular:service": {
"flat": true,
"spec": true
},
"@schematics/angular:pipe": {
"export": false,
"flat": true,
"module": "",
"skipImport": false,
"spec": true
},
"@schematics/angular:directive": {
"export": false,
"flat": true,
"module": "",
"prefix": "app",
"selector": "",
"skipImport": false,
"spec": true
},
"@schematics/angular:class": {
"spec": true
}
}
// ...
}
ERREUR:
La commande ng set defaults.spec.component false
entraîne l'erreur: get/set have been deprecated in favor of the config command.
ng set got changed to ng config
.
Utilisation de la CLI angulaire (utilisation de la commande config):
Les paramètres de génération de spécifications, de modèles en ligne, de style en ligne, etc. dans angular.json
sont maintenant conservés dans le schematics.@schematics/angular.<file-type>.<setting>
.
Exécutez ng config schematics.@schematics/angular.component.spec false
pour configurer les spécifications des composants. Cette commande ajoute le paramètre dans la propriété schematics du fichier angular.json
(présenté ci-dessous).
Fichier d'espace de travail CLI angulaire (angular.json) sur Github angulaire
Si vous utilisez la v6 et devez modifier votre fichier angular.json
Vous pouvez éditer les schémas de votre projet.
"schematics": {
"@schematics/angular:component": {
"styleext": "scss",
"spec": false
},
"@schematics/angular:class": {
"spec": false
},
"@schematics/angular:directive": {
"spec": false
},
"@schematics/angular:guard": {
"spec": false
},
"@schematics/angular:module": {
"spec": false
},
"@schematics/angular:pipe": {
"spec": false
},
"@schematics/angular:service": {
"spec": false
}
},
Juste pour mettre à jour la réponse de Sabbir Rahman :
Dans la version 1.0.2 de la CLI, vous devrez définir le fichier de spécification sur false pour chaque type. Un exemple est inclus ci-dessous:
"defaults": {
"styleExt": "scss",
"component": {
"spec": false
},
"service": {
"spec": false
},
"directive": {
"spec": false
},
"class": {
"spec": false // Set to false by default
},
"module": {
"spec": false // Set to false by default
},
"pipe": {
"spec": false
}
}
vous pouvez ajouter --skipTests=true|false
si true, il ne générera aucun spec.ts
exemple: ng g component componentName --skipTests=true
cette ligne ne générera aucun spec.ts fichiers