configuration.md 1.9 KB


id: configuration

title: Configuration File

Prettier uses cosmiconfig for configuration file support. This means you can configure prettier via:

  • A .prettierrc file, written in YAML or JSON, with optional extensions: .yaml/.yml/.json/.js.
  • A prettier.config.js file that exports an object.
  • A "prettier" key in your package.json file.

The configuration file will be resolved starting from the location of the file being formatted, and searching up the file tree until a config file is (or isn't) found.

The options to the configuration file are the same as the API options.

Basic Configuration

JSON:

{
  "printWidth": 100,
  "parser": "flow"
}

JS:

// .prettierrc.js
module.exports = {
  printWidth: 100,
  parser: "flow"
};

YAML:

# .prettierrc
printWidth: 100
parser: flow

Configuration Overrides

Prettier borrows eslint's override format. This allows you to apply configuration to specific files.

JSON:

{
  "semi": false,
  "overrides": [
    {
      "files": "*.test.js",
      "options": {
        "semi": true
      }
    }
  ]
}

YAML:

semi: false
overrides:
- files: "*.test.js"
  options:
    semi: true

files is required for each override, and may be a string or array of strings. excludeFiles may be optionally provided to exclude files for a given rule, and may also be a string or array of strings.

To get prettier to format its own .prettierrc file, you can do:

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

For more information on how to use the CLI to locate a file, see the CLI section.

Configuration Schema

If you'd like a JSON schema to validate your configuration, one is available here: http://json.schemastore.org/prettierrc.