web-dev-qa-db-fra.com

Comment puis-je générer un nouveau projet Angular qui respecte les styles d'indentation spécifiés

Je suis un angular depuis longtemps et cela me dérange toujours que l'exécution de ng new ne semblait pas fournir un moyen de créer un nouveau projet avec un type d'indentation spécifié (tabulations vs espaces) ou montant (2 vs 4).

Je commence un nouveau Angular 7 et à la lecture discussions connexes sur github il semble ce problème a été Naturellement, les solutions sont compliquées et contradictoires, et je fais clairement quelque chose de mal, car je ne peux pas lancer lintFix. Quand je l'exécute manuellement, il ne semble rien faire.

Quelqu'un peut-il me guider à travers les étapes pour générer un nouveau projet Angular qui respecte les styles d'indentation spécifiés immédiatement après le démarrage) avec un tout nouveau: npm install -g @angular/cli pour Angular 7?

9
Mordred

Dans mon cas, je voulais changer 2 espaces en 4, et exécuter ng lint --fix n'a rien fait, car le correcteur d'indentation de tslint ne modifie pas la quantité d'indentation, juste le type.

J'ai pu contourner ce problème immédiatement après avoir exécuté ng new en modifiant tslint.json pour ajouter:

"indent": [
    true,
    "tabs",
    2
],

Puis j'ai couru ng lint --fix et toutes les indentations d'espace ont été fixées sur des tabulations. Ensuite, j'ai remis l'indentation sur ce que je voulais vraiment:

"indent": [
    true,
    "spaces",
    4
],

... et a couru ng lint --fix encore. Maintenant, toute indentation existante est correcte. Bien sûr, plus encore Angular utiliseront toujours 2 espaces, donc ce n'est pas une solution complète, mais c'est mieux que rien.

5
Mordred

Je pense que vous pouvez exécuter les fixateurs TS Lint avec votre indentation préférée pour cela.

0
ahbon

Avec la dernière version de Angular 8.2.1, j'ai pu obtenir que cela fonctionne quelque peu pour les tabulations de 4 espaces. J'ai mal défini le retrait tslint.json, qui doit être des tabulations , mais avec 2 espaces.

"indent": [
    true,
    "tabs",
    2
],

Maintenant, lorsque j'utilise la génération ng, le schéma change l'espacement en tabulations et crée 2 tabulations là où cela était nécessaire. En utilisant un retrait des tabulations, avec un espacement de 4, le code qui est juste un retrait de 2 caractères espacés, n'a pas de remplacement de tabulation.

J'ai ensuite mon .editorconfig défini pour que le style de retrait soit défini sur des tabulations, mais que l'espacement pour une tabulation soit de 4 caractères. Cela semble alors correct dans tous mes éditeurs, car le code source sous-jacent a les taquets de tabulation appropriés créés par le ng generate avec l'indicateur --lintFix.

indent_style = tabs
indent_size = 4

Le texte est désormais correctement espacé dans Visual Studio Code ou d'autres éditeurs sur les différentes plates-formes que j'utilise.

0
Steven Scott