Aller au contenu

Prettier : options

Fichier Format
.prettierrc JSON ou YAML (détecté)
.prettierrc.json, .prettierrc.yaml, .prettierrc.toml Formats explicites
prettier.config.js, prettier.config.mjs Module JavaScript (export par défaut)
package.json Clé "prettier"
prettier.config.mjs
/** @type {import('prettier').Config} */
export default {
singleQuote: true,
printWidth: 100,
};

Un seul fichier de configuration : en cas de plusieurs, Prettier utilise le premier trouvé selon un ordre fixe. Pour partager une configuration entre projets : un paquet npm référencé par "prettier": "@organisation/prettier-config" dans package.json.

Option Défaut Rôle
printWidth 80 Largeur de ligne souhaitée
tabWidth 2 Espaces par niveau d’indentation
useTabs false Indenter avec des tabulations
semi true Point-virgule en fin d’instruction
singleQuote false Guillemets simples plutôt que doubles (hors JSX)
jsxSingleQuote false Idem dans JSX
quoteProps "as-needed" Guillemets autour des clés d’objets : "as-needed", "consistent", "preserve"
trailingComma "all" (Prettier 3) Virgule finale : "all", "es5", "none"
bracketSpacing true Espaces dans les accolades : { a: 1 }
bracketSameLine false Chevron fermant d’un élément sur la dernière ligne d’attributs
arrowParens "always" Parenthèses des fonctions fléchées : (x) => x
endOfLine "lf" Fins de ligne : "lf", "crlf", "cr", "auto"
proseWrap "preserve" Retour à la ligne du texte Markdown : "always", "never", "preserve"
htmlWhitespaceSensitivity "css" Sensibilité aux espaces en HTML
embeddedLanguageFormatting "auto" Formater le code intégré (CSS dans JS, code dans Markdown)
singleAttributePerLine false Un attribut HTML/JSX par ligne

Le fichier .prettierrc du présent site, par exemple, ne règle que quelques options et laisse le reste aux valeurs par défaut, avec les plugins Astro et Tailwind (voir Plugins).

{
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 100,
"tabWidth": 2,
"endOfLine": "lf"
}
Choix Conséquence
printWidth: 100 Moins de retours à la ligne qu’avec 80 ; plus lisible sur écrans larges
singleQuote: true Style répandu en JavaScript
endOfLine: "lf" Fins de ligne identiques sous Linux, macOS et Windows (avec .gitattributes)
// semi: false, singleQuote: true
const nom = 'Alice';
const liste = [1, 2, 3].map((n) => n * 2);
// semi: true, singleQuote: false, trailingComma: "all"
const config = {
nom: 'Alice',
roles: ['admin', 'editeur'],
};

Une option semi: false impose de faire attention aux lignes commençant par (, [ ou une apostrophe inversée : Prettier ajoute alors un point-virgule de garde au début de la ligne.

{
"overrides": [
{
"files": "*.md",
"options": { "proseWrap": "preserve", "printWidth": 100 }
}
]
}

proseWrap: "preserve" laisse le texte tel quel (un paragraphe par ligne) : c’est le choix qui évite les diffs bruyants quand on modifie une phrase. Pour de la documentation de ce type de site (valeurs YAML, tableaux), Prettier aligne les colonnes des tableaux Markdown.

// prettier-ignore
const matrice = [
1, 0, 0,
0, 1, 0,
0, 0, 1,
];
<!-- prettier-ignore -->
| a | b |
|---|---|
| 1 | 2 |
<!-- prettier-ignore -->
<div class="x" > non reformaté </div>

À réserver aux cas où le formatage détruit une mise en forme voulue (tableaux de valeurs, ASCII art).

Fenêtre de terminal
npx prettier --print-width 100 --single-quote --write src/
npx prettier --config prettier.config.mjs --write .
npx prettier --find-config-path src/app.js # quel fichier de configuration s'applique
npx prettier --support-info | head -40 # options et langages pris en charge

Prettier limite volontairement les options. Conseils :

  • Garder les valeurs par défaut sauf raison précise : printWidth, singleQuote et éventuellement semi sont les plus courantes.
  • Choisir une fois pour l’équipe, puis ne plus en discuter.
  • Ne jamais mettre des options différentes dans des sous-dossiers sans nécessité (utiliser overrides pour un type de fichier).
  • Aligner .editorconfig (Éditeur et EditorConfig).
Symptôme Piste
L’option n’a aucun effet Mauvais fichier de configuration (--find-config-path), faute de frappe, ou option ignorée pour ce langage
Les fins de ligne changent endOfLine et .gitattributes (* text=auto eol=lf)
Un fichier JSON est reformaté en une ligne Largeur de ligne : Prettier compacte les petits objets ; utiliser objectWrap: "preserve" dans les versions qui l’offrent
Le Markdown change de mise en forme proseWrap, listes (- plutôt que *) : comportement de Prettier
[error] Invalid configuration Option inconnue ou valeur invalide : lire le message
Résultat différent entre deux postes Versions de Prettier ou de plugins différentes

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Aucune.