Prettier — это инструмент для форматирования кода (code formatter), который автоматически приводит ваш код к единому стилю, избавляя команду от споров о форматировании.
Основное назначение Prettier
Prettier решает три ключевые проблемы:
- Единый стиль кода — автоматически применяет согласованные правила форматирования
- Экономия времени — устраняет ручное форматирование и обсуждение стиля
- Согласованность — гарантирует одинаковый вид кода у всех разработчиков
Как работает Prettier?
- Анализ кода — парсит исходный файл в AST (абстрактное синтаксическое дерево)
- Игнорирование оригинального форматирования — полностью переписывает код
- Применение правил — форматирует код согласно конфигурации
- Вывод результата — сохраняет отформатированный код
// До форматирования
const example = (a,b)=> { return a + b; }
// После Prettier
const example = (a, b) => {
return a + b;
}
Ключевые особенности Prettier
1. Поддержка языков
- JavaScript (включая ES6+)
- JSX
- TypeScript
- CSS, SCSS
- HTML
- JSON
- Markdown
2. "Мнениеный" подход
Prettier имеет встроенные стандарты форматирования, которые можно лишь частично настроить.
3. Интеграция с инструментами
- Работает с ESLint (через eslint-plugin-prettier)
- Имеет плагины для всех популярных IDE
- Может использоваться в pre-commit хуках
Настройка Prettier для React-проекта
1. Установка
npm install --save-dev prettier
2. Базовый конфиг .prettierrc
{
"semi": true,
"singleQuote": true,
"jsxSingleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "always",
"printWidth": 80,
"tabWidth": 2,
"useTabs": false
}
3. Игнорирование файлов .prettierignore
node_modules/
build/
dist/
*.config.js
coverage/
Интеграция с ESLint
- Установка плагинов:
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
- Настройка ESLint:
{
"extends": ["plugin:prettier/recommended"]
}
Интеграция с IDE
- Установите расширение Prettier
- Добавьте настройки:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
Примеры правил форматирования
Для JSX
// До
<Button variant="primary" disabled={true} onClick={handleClick}>Click me</Button>
// После
<Button
variant="primary"
disabled={true}
onClick={handleClick}
>
Click me
</Button>
Для цепочек методов
// До
const result = data.map(x=>x*2).filter(x=>x>10).reduce((a,b)=>a+b,0);
// После
const result = data
.map((x) => x * 2)
.filter((x) => x > 10)
.reduce((a, b) => a + b, 0);
Резюмируем
Prettier — это:
- Незаменимый инструмент для поддержания единого стиля кода
- "Мнениеный" форматтер с минимальной настройкой
- Средство для автоматизации рутинного форматирования
- Отличное дополнение к ESLint (проверка качества + форматирование)
Для React-разработчиков Prettier особенно полезен благодаря:
- Отличной поддержке JSX
- Автоматическому форматированию компонентов
- Интеграции с инструментами разработки
- Возможности настройки под нужды проекта
Использование Prettier в команде:
- Устраняет споры о стиле кода
- Экономит время на code review
- Делает код более читаемым
- Позволяет сосредоточиться на логике, а не на форматировании