Вопрос проверяет знание инструментов и практик для автоматического контроля качества кода в JavaScript/TypeScript проектах, что необходимо для поддержания единого стиля и предотвращения ошибок.
Контроль качества кода — это набор практик, направленных на поддержание чистоты, единообразия и надёжности кодовой базы. Две ключевые технологии в экосистеме JavaScript/TypeScript для этого — линтер ESLint и инструмент для управления Git-хуками Husky.
ESLint анализирует ваш JavaScript или TypeScript код, не выполняя его, на предмет ошибок, проблем со стилем и нерекомендуемых конструкций. Он работает на основе набора правил (rules), которые можно настроить. Популярные конфигурации, такие как eslint:recommended или стиль от Airbnb, предоставляют готовые наборы правил.
ESLint применяется на этапе разработки: его можно запускать вручную, интегрировать в редактор кода (например, VS Code) для подсветки проблем в реальном времени или как часть CI/CD-пайплайна.
// Пример конфигурации .eslintrc.js
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
rules: {
'no-console': 'warn', // Предупреждение при использовании console.log
'semi': ['error', 'always'], // Требует точку с запятой
},
};Husky упрощает работу с Git-хуками — скриптами, которые Git запускает в определённые моменты (например, перед коммитом или перед пушем). Husky позволяет легко настраивать эти хуки прямо в проекте, делая процесс стандартизированным и обязательным для всех разработчиков.
Типичное использование — pre-commit хук, который запускает линтинг и, возможно, форматирование (Prettier) или unit-тесты. Если скрипт завершается с ошибкой, коммит прерывается.
// Пример настройки в package.json после установки Husky
{
"scripts": {
"lint": "eslint src/**/*.{js,ts}",
"prepare": "husky install"
},
"devDependencies": {
"eslint": "^8.0.0",
"husky": "^8.0.0"
}
}
// Затем в терминале создаётся хук:
// npx husky add .husky/pre-commit "npm run lint"Вместе эти инструменты создают автоматизированный конвейер контроля качества. Разработчик, пытаясь сделать коммит, автоматически запускает проверку кода. Это предотвращает попадание в общую ветку кода, нарушающего соглашения команды или содержащего очевидные ошибки синтаксиса.
Вывод: Практика использования ESLint с Husky особенно полезна в командной разработке для поддержания консистентности кода и реализации принципа "не сломать мастер". Её стоит применять в любом проекте, где над кодом работает больше одного человека или который планируется долго поддерживать.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
TypeScript
Ключевые слова
Подпишись на React Developer в телеграм