Aller au contenu principal

Fichier de configuration

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Vous pouvez configurer Prettier via (par ordre de priorité) :

  • Une clé "prettier" dans votre fichier package.json ou package.yaml.

  • Un fichier .prettierrc écrit en JSON ou YAML.

  • Un fichier .prettierrc.json, .prettierrc.yml, .prettierrc.yaml, ou .prettierrc.json5.

  • Un fichier .prettierrc.js, prettier.config.js, .prettierrc.ts, ou prettier.config.ts exportant un objet avec export default ou module.exports (dépend de la valeur type dans votre package.json).

  • Un fichier .prettierrc.mjs, prettier.config.mjs, .prettierrc.mts, ou prettier.config.mts exportant un objet avec export default.

  • Un fichier .prettierrc.cjs, prettier.config.cjs, .prettierrc.cts, ou prettier.config.cts exportant un objet avec module.exports.

  • Un fichier .prettierrc.toml.

information

L'utilisation des fichiers de configuration TypeScript nécessite une configuration supplémentaire

Le fichier de configuration est résolu en partant de l'emplacement du fichier à formater, puis en remontant l'arborescence jusqu'à ce qu'un fichier de configuration soit trouvé (ou non).

Prettier ne prend intentionnellement pas en charge les configurations globales. Cela garantit qu'un projet copié sur un autre ordinateur conserve le même comportement de formatage. Autrement, Prettier ne pourrait assurer des résultats cohérents pour tous les membres d'une équipe.

Les options disponibles dans le fichier de configuration sont identiques aux options de l'API.

Fichiers de configuration TypeScript

Le support TypeScript nécessite Node.js >=22.6.0, et --experimental-strip-types est requis avant Node.js v24.3.0.

node --experimental-strip-types node_modules/prettier/bin/prettier.cjs . --write

ou

NODE_OPTIONS="--experimental-strip-types" prettier . --write

Configuration de base

JSON :

{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}

JS (ES Modules) :

// prettier.config.js, .prettierrc.js, prettier.config.mjs, or .prettierrc.mjs

/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
trailingComma: "es5",
tabWidth: 4,
semi: false,
singleQuote: true,
};

export default config;

JS (CommonJS) :

// prettier.config.js, .prettierrc.js, prettier.config.cjs, or .prettierrc.cjs

/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
trailingComma: "es5",
tabWidth: 4,
semi: false,
singleQuote: true,
};

module.exports = config;

TypeScript (ES Modules) :

// prettier.config.ts, .prettierrc.ts, prettier.config.mts, or .prettierrc.mts

import { type Config } from "prettier";

const config: Config = {
trailingComma: "none",
};

export default config;

TypeScript (CommonJS) :

// prettier.config.ts, .prettierrc.ts, prettier.config.cts, or .prettierrc.cts

import { type Config } from "prettier";

const config: Config = {
trailingComma: "none",
};

module.exports = config;

YAML :

# .prettierrc or .prettierrc.yaml
trailingComma: "es5"
tabWidth: 4
semi: false
singleQuote: true

TOML :

# .prettierrc.toml
trailingComma = "es5"
tabWidth = 4
semi = false
singleQuote = true

Surcharges de configuration

Les surcharges permettent d'appliquer des configurations différentes pour certaines extensions de fichier, dossiers ou fichiers spécifiques.

JSON :

{
"semi": false,
"overrides": [
{
"files": "*.test.js",
"options": {
"semi": true
}
},
{
"files": ["*.html", "legacy/**/*.js"],
"options": {
"tabWidth": 4
}
}
]
}

YAML :

semi: false
overrides:
- files: "*.test.js"
options:
semi: true
- files:
- "*.html"
- "legacy/**/*.js"
options:
tabWidth: 4

files est obligatoire pour chaque surcharge et peut être une chaîne ou un tableau de chaînes. excludeFiles est optionnel pour exclure des fichiers et peut également être une chaîne ou un tableau de chaînes.

Définir l'option parser

Par défaut, Prettier déduit automatiquement le parser à utiliser selon l'extension du fichier. Combiné avec overrides, vous pouvez indiquer à Prettier comment parser des fichiers qu'il ne reconnaît pas.

Par exemple, pour formater le fichier .prettierrc lui-même :

{
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
}
]
}

Vous pouvez également utiliser le parser flow au lieu du parser par défaut babel pour les fichiers .js :

{
"overrides": [
{
"files": "*.js",
"options": {
"parser": "flow"
}
}
]
}

Remarque : Ne placez jamais l'option parser au niveau supérieur de votre configuration. Utilisez-la uniquement dans les overrides. Sinon, vous désactivez effectivement l'inférence automatique des analyseurs par extension de fichier de Prettier. Cela force Prettier à utiliser l'analyseur spécifié pour tous les types de fichiers – même quand cela n'a pas de sens, comme essayer d'analyser un fichier CSS comme du JavaScript.

Schéma de configuration

Si vous souhaitez un schéma JSON pour valider votre configuration, vous pouvez en trouver un à cette adresse : https://www.schemastore.org/prettierrc.json.

EditorConfig

Si un fichier .editorconfig est présent dans votre projet, Prettier l'analysera et convertira ses propriétés dans la configuration Prettier correspondante. Cette configuration sera écrasée par .prettierrc, etc.

remarque

Contrairement à la spécification EditorConfig, la recherche d'un fichier .editorconfig s'arrêtera à la racine du projet et ne remontera pas plus haut.

Voici une description annotée de la manière dont les différentes propriétés correspondent au comportement de Prettier :

# Stop the editor from looking for .editorconfig files in the parent directories
# root = true

[*]
# Non-configurable Prettier behaviors
charset = utf-8
insert_final_newline = true
# Caveat: Prettier won’t trim trailing whitespace inside template strings, but your editor might.
# trim_trailing_whitespace = true

# Configurable Prettier behaviors
# (change these if your Prettier config differs)
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80

Voici un fichier .editorconfig prêt à copier-coller si vous utilisez les options par défaut :

[*]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80