Spec-Zone.ru › Prettier

Файл конфигурации

Вы можете настроить 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API