Hoppa till huvudinnehållet

Konfigurationsfil

Inofficiell Beta-översättning

Denna sida har översatts av PageTurner AI (beta). Inte officiellt godkänd av projektet. Hittade du ett fel? Rapportera problem →

Du kan konfigurera Prettier via (i prioritetsordning):

  • En "prettier"-nyckel i din package.json, eller package.yaml-fil.

  • En .prettierrc-fil skriven i JSON eller YAML.

  • En .prettierrc.json, .prettierrc.yml, .prettierrc.yaml, eller .prettierrc.json5-fil.

  • En .prettierrc.js, prettier.config.js, .prettierrc.ts, eller prettier.config.ts-fil som exporterar ett objekt med export default eller module.exports (beror på type-värdet i din package.json).

  • En .prettierrc.mjs, prettier.config.mjs, .prettierrc.mts, eller prettier.config.mts-fil som exporterar ett objekt med export default.

  • En .prettierrc.cjs, prettier.config.cjs, .prettierrc.cts, eller prettier.config.cts-fil som exporterar ett objekt med module.exports.

  • En .prettierrc.toml-fil.

info

Stöd för TypeScript-konfigurationsfiler kräver extra inställningar

Konfigurationsfilen kommer att lokaliseras från platsen för filen som formateras, och söker sedan uppåt i fillägret tills en konfigurationsfil hittas (eller inte hittas).

Prettier har medvetet inget stöd för global konfiguration. Detta för att säkerställa att när ett projekt kopieras till en annan dator förblir Prettiers beteende oförändrat. Annars skulle Prettier inte kunna garantera att alla i ett team får samma konsekventa resultat.

De alternativ du kan använda i konfigurationsfilen är desamma som API-alternativen.

TypeScript-konfigurationsfiler

TypeScript-stöd kräver Node.js>=22.6.0, och --experimental-strip-types krävs före Node.js v24.3.0.

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

eller

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

Grundkonfiguration

JSON:

.prettierrc.json or .prettierrc
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}

JS (ES Modules):

prettier.config.mjs, .prettierrc.mjs, prettier.config.js, or .prettierrc.js
/**
* @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.cjs, .prettierrc.cjs, prettier.config.js, or .prettierrc.js
/**
* @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.mts, .prettierrc.mts, prettier.config.ts, or .prettierrc.ts
import { type Config } from "prettier";

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

export default config;

TypeScript (CommonJS):

prettier.config.cts, .prettierrc.cts, prettier.config.ts, or .prettierrc.ts
import { type Config } from "prettier";

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

module.exports = config;

YAML:

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

TOML:

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

Konfigurationsöverskridanden

Överskridanden låter dig ha olika konfiguration för specifika filtillägg, mappar och filer.

JSON:

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

YAML:

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

files krävs för varje överskridande och kan vara en sträng eller strängarray. excludeFiles kan användas för att exkludera filer för en regel och kan också vara en sträng eller strängarray.

Ställa in parser-alternativet

Som standard identifierar Prettier automatiskt vilken parser som ska användas baserat på filändelsen. Kombinerat med overrides kan du lära Prettier att tolka filer den inte känner igen.

För att få Prettier att formatera sin egen .prettierrc-fil kan du till exempel göra:

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

Du kan också byta till flow-parsern istället för standard-babel för .js-filer:

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

OBS: Placera aldrig alternativet parser på toppnivån i din konfiguration. Använd det endast inuti overrides. Annars inaktiverar du i praktiken Prettiers automatiska parsningshänvisning baserat på filtillägg. Detta tvingar Prettier att använda den parser du angivit för alla typer av filer – även när det inte är meningsfullt, som att försöka tolka en CSS-fil som JavaScript.

Konfigurationsschema

Om du vill ha ett JSON-schema för att validera din konfiguration finns ett tillgängligt här: https://www.schemastore.org/prettierrc.json.

EditorConfig

Om det finns en .editorconfig-fil i ditt projekt kommer Prettier att läsa den och konvertera dess egenskaper till motsvarande Prettier-konfiguration. Denna konfiguration kommer att skrivas över av .prettierrc etc.

notera

Till skillnad från EditorConfig-specifikationen kommer sökningen efter .editorconfig-filer att avbrytas vid projektets rotkatalog och inte fortsätta vidare.

Här är en kommenterad beskrivning av hur olika egenskaper mappar till Prettiers beteende:

.editorconfig
# 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

Här är en kopieringsklar .editorconfig-fil om du använder standardalternativen:

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