Файл конфигурации
Вы можете настроить Prettier следующим образом (в порядке приоритета):
- Ключ
"prettier"в вашем файлеpackage.json, илиpackage.yaml. - Файл
.prettierrcв формате JSON или YAML. - Файл
.prettierrc.json,.prettierrc.yml,.prettierrc.yaml, или.prettierrc.json5. - Файл
.prettierrc.js, илиprettier.config.js, который экспортирует объект, используяexport defaultилиmodule.exports(зависит от значенияtypeв вашем файлеpackage.json). - Файл
.prettierrc.mjs, илиprettier.config.mjs, который экспортирует объект, используяexport default. - Файл
.prettierrc.cjs, илиprettier.config.cjs, который экспортирует объект, используяmodule.exports. - Файл
.prettierrc.toml.
Файл конфигурации будет находиться, начиная от расположения форматируемого файла, и искать вверх по дереву файлов, пока не будет (или не будет) найден файл конфигурации.
Prettier намеренно не поддерживает глобальную конфигурацию. Это сделано для того, чтобы, когда проект копируется на другой компьютер, поведение Prettier оставалось неизменным. В противном случае Prettier не смог бы гарантировать, что все члены команды получат одинаковые результаты.
Опции, которые вы можете использовать в файле конфигурации, совпадают с API опциями.
Базовая конфигурация
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/en/configuration.html * @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/en/configuration.html * @type {import("prettier").Config} */ const config = { trailingComma: "es5", tabWidth: 4, semi: false, singleQuote: true, }; 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
Переопределения конфигурации
Переопределения позволяют использовать разные настройки для определённых расширений файлов, папок и отдельных файлов.
Prettier заимствует формат переопределения у ESLint из формата переопределения.
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://json.schemastore.org/prettierrc.
EditorConfig
Если в вашем проекте есть файл .editorconfig, Prettier его проанализирует и преобразует его свойства в соответствующую конфигурацию Prettier. Эта конфигурация будет переопределена .prettierrc, и т.д.
Вот аннотированное описание того, как различные свойства отображаются в поведении 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/en/configuration