Prettier
Install
https://prettier.io/docs/en/install.html
npm install --save-dev --save-exact prettier
npm i -D -E prettier
# or
yarn add --dev --exact prettier
echo {}> .prettierrc.json
# or
echo '{\n "semi": false,\n "singleQuote": true\n}' >> .prettierrc.json
touch .prettierignore
Note: If you forget to install Prettier first, npx will temporarily download the latest version. That’s not a good idea when using Prettier, because we change how code is formatted in each release! It’s important to have a locked down version of Prettier in your package.json. And it’s faster, too.
Tip! Base your .prettierignore on .gitignore and .eslintignore.
Finally, edit your .eslintrc.js
so that it extends 'prettier' - see ESLint.
Note that it ignores files located in node_modules
directory - docs
Commands
https://prettier.io/docs/en/cli.html
Run: npx prettier --write .
Check: npx prettier --check .
Add the following scripts (npm run format
and npm run format:check
):
{
"scripts": {
"format": "prettier --write .",
"format:check": "prettier --check ."
}
}
Options
https://prettier.io/docs/en/options.html
{
"semi": false, // default true
"singleQuote": true, // default false
"trailingComma": "es5" // default changed from "es5" to "all" in v3.0.0
}
semi: false
→ Only add semicolons at the beginning of lines that may introduce ASI failures - docs
singleQuote: true
→ Chooses the one which results in the fewest number of escapes, but in case of a tie or the string not containing any quotes, defaults to single quotes - docs - rationale
WebStorm setup
Starting from WebStorm 2024.2, new projects with a direct prettier
dependency in their root package.json
and a Prettier configuration file at the same level will have the Automatic Prettier Configuration setting enabled by default. This feature simplifies the setup process and ensures that Prettier integration is enabled out of the box. source
https://prettier.io/docs/en/webstorm.html
https://www.jetbrains.com/help/webstorm/prettier.html
Go to Preferences → Languages and Frameworks → JavaScript → Prettier:
- Manual Prettier configuration
- Set 'Prettier package' to
<project-dir>/node_modules/prettier
. - Set 'Run for files' to the glob pattern
{**/*,*}.{js,ts,jsx,tsx,html,css,json,md,yml,yaml}
.- Since WebStorm 2023.3
{**/*,*}.{js,ts}
can be simplified to**/*.{js,ts}
source
- Since WebStorm 2023.3
- Check "Run on 'Reformat Code' action" and "Run on save".
Reformat with Prettier: ⌥⇧⌘P