Prettier — это мощный инструмент для автоматического форматирования кода, который особенно полезен в React-разработке. Рассмотрим детальную настройку.
Устанавливаем базовый пакет:
npm install --save-dev prettier
Для интеграции с ESLint:
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
Создаем файл .prettierrc.json
в корне проекта:
{
"semi": true,
"singleQuote": true,
"jsxSingleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "always",
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"endOfLine": "auto",
"quoteProps": "as-needed",
"proseWrap": "always"
}
Создаем .prettierignore
:
# Игнорируемые файлы
node_modules
build
dist
coverage
*.config.js
*.snap
.env
.vscode
.next
out
public
Обновляем ESLint конфигурацию (.eslintrc.json
):
{
"extends": [
"plugin:react/recommended",
"plugin:prettier/recommended"
],
"rules": {
"prettier/prettier": "error"
}
}
Если проект использует TypeScript:
{
"overrides": [
{
"files": "*.{ts,tsx}",
"options": {
"parser": "typescript"
}
}
]
}
Добавляем полезные команды:
"scripts": {
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md,json}\"",
"format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\""
}
Добавляем настройки в .vscode/settings.json
:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.requireConfig": true
}
Специфические правила для React/JSX:
{
"jsxBracketSameLine": false,
"jsxSingleQuote": false,
"bracketSpacing": true,
"arrowParens": "always"
}
Пример форматирования JSX:
// До
<Button variant="primary" onClick={handleClick} disabled={isDisabled}>Submit</Button>
// После Prettier
<Button
variant="primary"
onClick={handleClick}
disabled={isDisabled}
>
Submit
</Button>
Для автоматического форматирования перед коммитом:
npm install husky --save-dev
npx husky install
npx husky add .husky/pre-commit "npx prettier --write --loglevel warn \"src/**/*.{js,jsx,ts,tsx}\""
Для расширенной функциональности:
npm install --save-dev prettier-plugin-tailwindcss prettier-plugin-organize-imports
И добавляем в конфиг:
{
"plugins": [
"prettier-plugin-tailwindcss",
"prettier-plugin-organize-imports"
]
}
Для полной настройки Prettier в React-проекте:
.prettierrc
.prettierignore
Правильно настроенный Prettier даст:
Использование Prettier в сочетании с ESLint создает мощную систему контроля качества кода.