1 | # @vue/eslint-config-prettier
|
2 |
|
3 | > A wrapper around `eslint-config-prettier` designed to work more intuitively with `create-vue` setups.
|
4 |
|
5 | This config is specifically designed to be used by `create-vue` setups
|
6 | and is not meant for outside use (it can be used but some adaptations
|
7 | on the user side might be needed - for details see the config file).
|
8 |
|
9 | A part of its design is that this config may implicitly depend on
|
10 | other parts of `create-vue` setups.
|
11 |
|
12 | ## Installation
|
13 |
|
14 | ```sh
|
15 | npm add --dev @vue/eslint-config-prettier
|
16 | ```
|
17 |
|
18 | Please also make sure that you have `prettier` and `eslint` installed.
|
19 |
|
20 | ## Usage
|
21 |
|
22 | > Note: the current version doesn't support the legacy `.eslintrc*` configuration format. For that you need to use version 9 or earlier. See the [corresponding README](https://www.npmjs.com/package/@vue/eslint-config-prettier/v/legacy-eslintrc) for more usage instructions.
|
23 |
|
24 | 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.
|
25 |
|
26 | ```js
|
27 | import someConfig from "some-other-config-you-use";
|
28 | import prettierConfig from "@vue/eslint-config-prettier";
|
29 |
|
30 | export default [someConfig, prettierConfig];
|
31 | ```
|
32 |
|
33 | Make sure to put it **last**, so it gets the chance to override other configs.
|
34 |
|
35 | This configuration is the most straightward way to use ESLint with Prettier.
|
36 |
|
37 | It disables all rules that are unnecessary or might conflict with Prettier.
|
38 | It also enables the `eslint-plugin-prettier` plugin, which runs Prettier as an ESLint rule and reports differences as individual ESLint issues.
|
39 |
|
40 | By default all formatting issues are reported as warnings, and will be automatically fixed during `eslint --fix`.
|
41 |
|
42 | ## Use Separate Commands for Linting and Formatting
|
43 |
|
44 | While the above setup is very straightforward, it is not necessarily the best way.
|
45 |
|
46 | 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.
|
47 | [Prettier's official documentation](https://prettier.io/docs/en/integrating-with-linters.html) recommends using separate commands for linting and formatting, i.e., Prettier for code formatting concerns and ESLint for code-quality concerns.
|
48 |
|
49 | So we offered an additional ruleset to support this workflow:
|
50 |
|
51 | ```js
|
52 | import someConfig from "some-other-config-you-use";
|
53 | import skipFormattingConfig from "@vue/eslint-config-prettier/skip-formatting";
|
54 |
|
55 | export default [someConfig, skipFormattingConfig];
|
56 | ```
|
57 |
|
58 | Formatting issues won't be reported with this config.
|
59 |
|
60 | You can run `prettier --check .` separately to check for formatting issues, or `prettier --write .` to fix them.
|
61 |
|
62 | ## Further Reading
|
63 |
|
64 | The default config is based on the recommended configuration of [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier/#recommended-configuration), which also depends on [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier). Please refer to their corresponding documentations for more implementation details.
|