Файл конфигурации
Вы можете настроить Prettier с помощью (в порядке приоритета):
- Ключа
"prettier"в файлеpackage.jsonили файлаpackage.yaml. - Файла
.prettierrcв формате JSON или YAML. - Файла
.prettierrc.json,.prettierrc.yml,.prettierrc.yamlили.prettierrc.json5. - Файла
.prettierrc.js,prettier.config.js,.prettierrc.tsилиprettier.config.ts, который экспортирует объект с помощьюexport defaultилиmodule.exports(зависит от значенияtypeв файлеpackage.json). - Файла
.prettierrc.mjs,prettier.config.mjs,.prettierrc.mtsилиprettier.config.mts, который экспортирует объект с помощьюexport default. - Файла
.prettierrc.cjs,prettier.config.cjs,.prettierrc.ctsилиprettier.config.cts, который экспортирует объект с помощьюmodule.exports. - Файла
.prettierrc.toml.
Для поддержки файлов конфигурации TypeScript требуется дополнительная настройка
Файл конфигурации будет найден начиная с расположения форматируемого файла с последующим поиском вверх по дереву каталогов, пока файл конфигурации не будет найден (или пока поиск не завершится безрезультатно).
Prettier намеренно не поддерживает глобальную конфигурацию. Это необходимо, чтобы при копировании проекта на другой компьютер Prettier работал так же. В противном случае Prettier не смог бы гарантировать, что все участники команды получают одинаковые согласованные результаты.
Параметры, которые можно использовать в файле конфигурации, совпадают с параметрами API.
Файлы конфигурации TypeScript
Для поддержки TypeScript требуется Node.js>=22.6.0, а для запуска Node.js до версии v24.3.0 необходимо --experimental-strip-types.
node --experimental-strip-types node_modules/prettier/bin/prettier.cjs . --write
или
NODE_OPTIONS="--experimental-strip-types" prettier . --write
Базовая конфигурация
JSON:
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
} JS (модули ES):
// 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):
// 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
Переопределения конфигурации
Переопределения позволяют задавать разные конфигурации для определённых расширений файлов, папок и отдельных файлов.
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; его значением может быть строка или массив строк. Параметр excludeFiles можно указать дополнительно, чтобы исключить файлы для данного правила; его значением также может быть строка или массив строк.
Настройка параметра parser
По умолчанию Prettier автоматически определяет используемый парсер на основе расширения входного файла. Сочетание с overrides позволяет научить Prettier анализировать файлы, которые он не распознаёт.
Например, чтобы Prettier форматировал собственный файл .prettierrc, можно сделать следующее:
{
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
}
]
} Также можно переключиться на парсер flow вместо используемого по умолчанию парсера babel для файлов .js:
{
"overrides": [
{
"files": "*.js",
"options": {
"parser": "flow"
}
}
]
} Примечание: Никогда не указывайте параметр parser на верхнем уровне конфигурации. Используйте его только внутри overrides. Иначе вы фактически отключите автоматическое определение парсера Prettier по расширению файла. В результате Prettier будет использовать указанный парсер для всех типов файлов — даже если это не имеет смысла, например, пытаясь разобрать CSS-файл как JavaScript.
Схема конфигурации
Если вам нужна схема JSON для проверки конфигурации, она доступна здесь: https://www.schemastore.org/prettierrc.json.
EditorConfig
Если в проекте есть файл .editorconfig, Prettier обработает его и преобразует содержащиеся в нём свойства в соответствующие параметры конфигурации Prettier. Эта конфигурация будет переопределена параметрами .prettierrc и т. д.
В отличие от спецификации EditorConfig, поиск файла .editorconfig остановится в корневом каталоге проекта и не будет продолжаться выше.
Ниже приведено описание того, как различные свойства влияют на поведение 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
Если вы используете параметры по умолчанию, ниже приведён готовый для копирования и вставки файл .editorconfig:
[*] charset = utf-8 insert_final_newline = true end_of_line = lf indent_style = space indent_size = 2 max_line_length = 80
© James Long and contributors
https://prettier.io/docs/configuration