What is @vue/eslint-config-prettier?
@vue/eslint-config-prettier is an ESLint configuration package that disables rules that might conflict with Prettier, a code formatting tool. This package ensures that your Vue.js project adheres to Prettier's formatting rules without any conflicts from ESLint.
What are @vue/eslint-config-prettier's main functionalities?
Disabling conflicting ESLint rules
By extending `@vue/eslint-config-prettier` in your ESLint configuration, you disable all ESLint rules that are unnecessary or might conflict with Prettier. This ensures that Prettier's formatting rules take precedence.
{
"extends": [
"@vue/eslint-config-prettier"
]
}
Integration with Vue.js projects
This configuration extends both Vue's essential linting rules and Prettier's rules, ensuring that your Vue.js project is linted according to best practices while also being formatted by Prettier.
{
"extends": [
"plugin:vue/essential",
"@vue/eslint-config-prettier"
]
}
Other packages similar to @vue/eslint-config-prettier
eslint-config-prettier
eslint-config-prettier is a popular package that turns off all ESLint rules that are unnecessary or might conflict with Prettier. It is not specific to Vue.js and can be used with any JavaScript project.
eslint-plugin-prettier
eslint-plugin-prettier integrates Prettier into ESLint. It runs Prettier as an ESLint rule and reports differences as individual ESLint issues. This package can be used alongside eslint-config-prettier for a comprehensive setup.
eslint-config-airbnb
eslint-config-airbnb is a widely-used ESLint configuration that follows Airbnb's JavaScript style guide. While it does not specifically integrate with Prettier, it can be used in conjunction with eslint-config-prettier to avoid conflicts.
@vue/eslint-config-prettier
eslint-config-prettier for Vue
This config is specifically designed to be used by create-vue
setups
and is not meant for outside use (it can be used but some adaptations
on the user side might be needed - for details see the config file).
A part of its design is that this config may implicitly depend on
other parts of create-vue
setups.
Installation
npm add --dev @vue/eslint-config-prettier
Please also make sure that you have prettier
and eslint
installed.
Usage
Note: the current version doesn't support the legacy .eslintrc*
configuraion format. For that you need to use version 9 or earlier. See the corresponding README for more usage instructions.
Import @vue/eslint-config-prettier
in eslint.config.js
(or eslint.config.mjs
), and put it in the configuration array – &&after other configs that you want to override.
import someConfig from "some-other-config-you-use";
import prettierConfig from "@vue/eslint-config-prettier";
export default [someConfig, prettierConfig];
Make sure to put it last, so it gets the chance to override other configs.
This configuration is the most straightward way to use ESLint with Prettier.
It disables all rules that are unnecessary or might conflict with Prettier.
It also enables the eslint-plugin-prettier
plugin, which runs Prettier as an ESLint rule and reports differences as individual ESLint issues.
By default all formatting issues are reported as warnings, and will be automatically fixed during eslint --fix
.
Use Separate Commands for Linting and Formatting
While the above setup is very straightforward, it is not necessarily the best way.
Running prettier inside the linter slows down the linting process, might clutter the editor with annoying warnings, and adds one layer of indirection where things may break.
Prettier's official documentation recommends using separate commands for linting and formatting, i.e., Prettier for code formatting concerns and ESLint for code-quality concerns.
So we offered an additional ruleset to support this workflow:
import someConfig from "some-other-config-you-use";
import skipFormattingConfig from "@vue/eslint-config-prettier/skip-formatting";
export default [someConfig, skipFormattingConfig];
Formatting issues won't be reported with this config.
You can run prettier --check .
separately to check for formatting issues, or prettier --write .
to fix them.
Further Reading
The default config is based on the recommended configuration of eslint-plugin-prettier
, which also depends on eslint-config-prettier
. Please refer to their corresponding documentations for more implementation details.