prettier/docs/integrating-with-linters.md

5.0 KiB

id title
integrating-with-linters Integrating with Linters

Prettier can be integrated into workflows with existing linting tools. This allows you to use Prettier for code formatting concerns, while letting your linter focus on code-quality concerns as outlined in our comparison with linters.

Whatever linting tool you wish to integrate with, the steps are broadly similar. First disable any existing formatting rules in your linter that may conflict with how Prettier wishes to format your code. Then you can either add an extension to your linting tool to format your file with Prettier - so that you only need a single command for format a file, or run your linter then Prettier as separate steps.

All these instructions assume you have already installed prettier in your devDependencies.

ESLint

Disable formatting rules

eslint-config-prettier is a config that disables rules that conflict with Prettier. Add it to your devDependencies, then extend from it within your .eslintrc configuration. Make sure to put it last in the extends array, so it gets the chance to override other configs.

yarn add --dev eslint-config-prettier

Then in .eslintrc.json:

{
  "extends": ["prettier"]
}

Use ESLint to run Prettier

eslint-plugin-prettier is a plugin that adds a rule that formats content using Prettier. Add it to your devDependencies, then enable the plugin and rule.

yarn add --dev eslint-plugin-prettier

Then in .eslintrc.json:

{
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

eslint-plugin-prettier exposes a "recommended" configuration that configures both eslint-plugin-prettier and eslint-config-prettier in a single step. Add both eslint-plugin-prettier and eslint-config-prettier as developer dependencies, then extend the recommended config:

yarn add --dev eslint-config-prettier eslint-plugin-prettier

Then in .eslintrc.json:

{
  "extends": ["plugin:prettier/recommended"]
}

TSLint

Disable formatting rules

tslint-config-prettier is a config that disables rules that conflict with Prettier. Add it to your devDependencies, then extend from it within your tslint.json configuration. Make sure to put it last in the extends array, so it gets the chance to override other configs.

yarn add --dev tslint-config-prettier

Then in tslint.json:

{
  "extends": ["tslint-config-prettier"]
}

Use TSLint to run Prettier

tslint-plugin-prettier is a plugin that adds a rule that formats content using Prettier. Add it to your devDependencies, then enable the plugin and rule.

yarn add --dev tslint-plugin-prettier

Then in tslint.json:

{
  "extends": ["tslint-plugin-prettier"],
  "rules": {
    "prettier": true
  }
}

tslint-plugin-prettier does not expose a recommended configuration. You should combine the two steps above. Add both tslint-plugin-prettier and tslint-config-prettier as developer dependencies, then add both sets of config.

yarn add --dev tslint-config-prettier tslint-plugin-prettier

Then in tslint.json:

{
  "extends": ["tslint-plugin-prettier", "tslint-config-prettier"],
  "rules": {
    "prettier": true
  }
}

Stylelint

Disable formatting rules

stylelint-config-prettier is a config that disables rules that conflict with Prettier. Add it to your devDependencies, then extend from it within your .stylelintrc configuration. Make sure to put it last in the extends array, so it gets the chance to override other configs.

yarn add --dev stylelint-config-prettier

Then in .stylelintrc:

{
  "extends": ["stylelint-config-prettier"]
}

Use Stylelint to run Prettier

stylelint-prettier is a plugin that adds a rule that formats content using Prettier. Add it to your devDependencies, then enable the plugin and rule.

yarn add --dev stylelint-prettier

Then in .stylelintrc:

{
  "plugins": ["stylelint-prettier"],
  "rules": {
    "prettier/prettier": true
  }
}

stylelint-prettier exposes a "recommended" configuration that configures both stylelint-prettier and stylelint-config-prettier in a single step. Add both stylelint-prettier and stylelint-config-prettier as developer dependencies, then extend the recommended config:

yarn add --dev stylelint-config-prettier stylelint-prettier

Then in .stylelintrc:

{
  "extends": ["stylelint-prettier/recommended"]
}