Prettier : ignorer et surcharger
.prettierignore
Section intitulée « .prettierignore »Même syntaxe que .gitignore, à la racine du projet :
# fichiers produits par le builddist/build/coverage/.astro/.next/
# dépendances et verrouillagenode_modules/package-lock.jsonpnpm-lock.yaml
# fichiers générés ou tierspublic/vendor/*.min.jssrc/generated/Par défaut, Prettier ignore déjà node_modules/ et lit aussi .gitignore (depuis la version 3). Le .prettierignore ajoute ce que Git suit mais qu’on ne veut pas formater (fichiers de verrouillage, bibliothèques copiées, sorties générées versionnées).
npx prettier --check . --ignore-path .prettierignore --ignore-path .gitignoreL’option --ignore-path (répétable) précise les fichiers d’exclusion à utiliser.
Vérifier ce qui est ignoré
Section intitulée « Vérifier ce qui est ignoré »npx prettier --check "src/**/*.js" --log-level debug 2>&1 | grep -i ignorenpx prettier --file-info src/generated/api.js{ "ignored": true, "inferredParser": null }--file-info indique si le fichier est ignoré et quel analyseur serait utilisé.
Surcharger par type de fichier : overrides
Section intitulée « Surcharger par type de fichier : overrides »{ "singleQuote": true, "printWidth": 100, "overrides": [ { "files": "*.md", "options": { "proseWrap": "preserve" } }, { "files": ["*.yml", "*.yaml"], "options": { "singleQuote": false } }, { "files": "package.json", "options": { "printWidth": 200 } }, { "files": "*.css", "options": { "printWidth": 120 } }, { "files": "legacy/**/*.js", "options": { "semi": false } } ]}| Clé | Rôle |
|---|---|
files |
Motif (ou liste) de fichiers concernés (glob) |
excludeFiles |
Motifs exclus de la surcharge |
options |
Options appliquées à ces fichiers (écrasent les options générales) |
Les surcharges s’appliquent dans l’ordre : la dernière qui correspond l’emporte.
Forcer un analyseur
Section intitulée « Forcer un analyseur »Pour un fichier à l’extension inhabituelle :
{ "overrides": [ { "files": ".eslintrc", "options": { "parser": "json" } }, { "files": "*.tpl.html", "options": { "parser": "html" } }, { "files": "Caddyfile", "options": { "parser": "none" } } ]}Prettier ne connaît pas tous les fichiers (un Caddyfile, par exemple) : les laisser de côté dans .prettierignore plutôt que de forcer un analyseur inadapté.
Formater seulement une partie du projet
Section intitulée « Formater seulement une partie du projet »npx prettier --write src/ tests/ scripts/npx prettier --write "**/*.{js,ts,tsx,css,md,json}"git diff --name-only --diff-filter=ACMR origin/main | xargs npx prettier --writeLa dernière commande ne formate que les fichiers modifiés par rapport à la branche principale (sans toucher au reste : utile sur un projet qu’on migre progressivement). En routine, c’est le rôle de lint-staged (Intégration continue et hooks).
Fichiers générés et verrouillage
Section intitulée « Fichiers générés et verrouillage »| Fichier | Traitement |
|---|---|
package-lock.json, pnpm-lock.yaml, yarn.lock |
Ignorer (générés par le gestionnaire de paquets) |
dist/, build/, .next/, .astro/ |
Ignorer |
CHANGELOG.md produit par un outil |
Ignorer, ou laisser formater si l’outil produit un format stable |
| Fichiers copiés de projets tiers | Ignorer |
Fichiers de configuration (package.json, tsconfig.json) |
Formater |
Désactiver localement
Section intitulée « Désactiver localement »// prettier-ignoreconst table = { a: 1, bcd: 2,};/* prettier-ignore */.grille { grid-template-areas: "a b" "c d"; }# prettier-ignorecle: [ 1,2,3 ]Plage en Markdown :
<!-- prettier-ignore-start -->| col 1 | col 2 ||-------|-------|| a | b |<!-- prettier-ignore-end -->Cas des fichiers d’un autre outil
Section intitulée « Cas des fichiers d’un autre outil »Quand un autre outil réécrit le fichier (générateur, npm version, formateur de package.json), Prettier et lui peuvent se contredire à chaque exécution. Choisir un seul responsable du format de ce fichier : soit l’ignorer dans Prettier, soit aligner ses options.
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
| Un fichier ignoré est quand même formaté | Motif de .prettierignore incorrect (chemin relatif à la racine), --ignore-path différent |
| Un dossier devrait être ignoré mais est analysé | dist/ avec la barre finale, ou motif **/dist/** |
overrides sans effet |
Motif files ne correspondant pas (chemin relatif au fichier de configuration), ordre des surcharges |
[error] No files matching the pattern were found |
Motif entre guillemets pour que Prettier (et non le shell) l’interprète ; vérifier le chemin |
Prettier reformate package-lock.json |
L’ajouter à .prettierignore |
Fichiers de node_modules formatés |
Motif de la ligne de commande qui l’inclut explicitement (**/*.js) ; Prettier ignore ce dossier par défaut seulement si le motif ne le cible pas |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Aucune.