Понимание роли Husky, ESLint и Prettier: причины принятия и рекомендации по внедрению
Husky, ESLint и Prettier Trio: полное руководство по идеальному рабочему процессу фронтенд-разработки
На протяжении многих лет фронтенд-разработка претерпевала стремительную эволюцию, внедряя новые фреймворки, библиотеки и инструменты, которые упростили процесс создания визуально привлекательных и удобных веб-приложений. Однако из-за растущей сложности веб-проектов поддержание качества и согласованности кода, а также содействие сотрудничеству разработчиков стали серьезной проблемой. Именно здесь надежная комбинация Husky, ESLint и Prettier оказывается спасением, предлагая эффективное решение для расширения рабочего процесса разработки интерфейса. В этой подробной статье мы подробно рассмотрим причины использования этого трио, преимущества, которые оно дает, и пошаговое руководство по его настройке для создания безупречного опыта разработки в целом. Ага! Давайте погрузимся прямо в.
1. Введение в Husky, ESLint и Prettier
1.1 Хаски
Названный в честь верного и крепкого хаски, Husky — это менеджер Git-хуков, предназначенный в основном для фронтенд-разработчиков и разработчиков в целом. Это помогает обеспечить соблюдение стандартов кодирования и предотвратить отправку некачественного кода в репозиторий. Интегрируя Husky в свой проект, вы можете определить сценарии, которые автоматически запускаются перед определенными командами Git, такими как фиксация или отправка кода. Это позволяет вам выявлять ошибки, запускать тесты и выполнять другие задачи перед фиксацией или перед отправкой, гарантируя, что ваша кодовая база останется согласованной и высококачественной. Круто, правда?
Вы должны видеть в нем суровую собаку, которая всегда лает на вас, когда вы делаете что-то не так или не следуете ее правилам.
1.2 ESLint
ESLint — это широко используемый и настраиваемый инструмент линтера для JavaScript. Он статически анализирует ваш код для выявления потенциальных проблем, обеспечения соблюдения стандартов кодирования и поддержания качества кода. ESLint поставляется с множеством правил, которые можно настроить в соответствии с требованиями вашего проекта. Этот инструмент не только выявляет синтаксические ошибки, но и применяет лучшие практики, гарантируя, что ваш код будет читабельным, ремонтопригодным и соответствует согласованным соглашениям о написании кода.
1.3 Красивее
Форматирование кода часто является спорной темой в командах разработчиков. Prettier решает эту проблему, автоматически форматируя ваш код в соответствии с предопределенным руководством по стилю. Это устраняет споры о стиле кодирования, гарантируя, что ваша кодовая база выглядит аккуратно и единообразно. Prettier поддерживает различные форматы файлов и может быть настроен на форматирование кода по мере написания, что упрощает работу разработчиков.
2. Зачем использовать Husky, ESLint и Prettier Trio?
Сочетание Husky, ESLint и Prettier решает несколько проблемных моментов в разработке и предлагает множество преимуществ:
2.1 Согласованность кода
В средах совместной разработки поддержание согласованного стиля кода во всей кодовой базе может быть сложной задачей. У разных разработчиков могут быть разные стили кодирования, что приводит к тому, что код трудно читать и поддерживать. Интегрируя ESLint и Prettier с помощью хуков Husky, вы можете обеспечить единый стиль кодирования, гарантируя, что весь код будет соответствовать одному и тому же набору рекомендаций. Такая согласованность улучшает читаемость кода и уменьшает путаницу среди разработчиков.
2.2 Предотвращение ошибок
Обнаружение ошибок и багов на ранних этапах процесса разработки необходимо для минимизации времени отладки и поддержания высокого качества кодовой базы. Трио Husky, ESLint и Prettier помогает предотвратить ошибки, выполняя сценарии предварительной фиксации и предварительной отправки. Возможности статического анализа ESLint выявляют такие проблемы, как синтаксические ошибки, потенциальные ошибки и соблюдение стандартов кодирования. Этот упреждающий подход помогает разработчикам выявлять и устранять проблемы до того, как они попадут в репозиторий.
2.3 Эффективное сотрудничество
В совместных проектах разные стили кодирования могут привести к ненужным конфликтам и дискуссиям между разработчиками. Автоматическое форматирование кода Prettier и применение правил ESLint устраняют необходимость ручного форматирования кода и обсуждения стиля. Разработчики могут сосредоточиться на написании кода и реализации функций, зная, что инструменты справятся с форматированием и соблюдением стандартов. Это улучшает командную работу, поскольку трио уменьшает трения и позволяет разработчикам сосредоточиться на творческих аспектах своей работы.
2.4 Экономия времени
Форматирование кода вручную, выявление и исправление ошибок и обсуждение стандартов кодирования отнимают значительное количество времени на разработку. Трио Husky, ESLint и Prettier автоматизирует эти задачи, позволяя разработчикам сосредоточиться на инновациях и решении проблем. Благодаря автоматизированному форматированию кода время, затрачиваемое на корректировку стиля кода, сводится к минимуму, а процесс разработки в целом становится более эффективным.
В качестве иллюстрации рассмотрим сценарий, в котором вы хотите изменить стиль импорта с одинарных кавычек на двойные во всем устаревшем проекте, чтобы обеспечить единообразие. Prettier и ESLint могут эффективно выполнить эту задачу от вашего имени. Разве это не здорово?
3. Настройка Husky, ESLint и Prettier: пошаговое руководство
В этом разделе мы проведем вас через процесс настройки трио Husky, ESLint и Prettier в вашем внешнем проекте. Мы рассмотрим установку, настройку и интеграцию с примерами кода, чтобы проиллюстрировать каждый шаг. Заставляем Трио работать.
3.1 Интеграция ESLint
ESLint можно интегрировать в ваш проект, установив его и настроив его правила. Начните с установки ESLint:
# Using npm npm install eslint --save-dev # Using yarn yarn add eslint --dev
Затем инициализируйте конфигурацию ESLint с помощью следующей команды:
npx eslint --init
Затем запустите конфигурацию ESLint с помощью следующей команды:
npm init @eslint/config
Эта команда поможет вам настроить ESLint и выбрать стиль конфигурации. Вы можете выбирать между популярными стилями, такими как Standard, XO и другими.
После настройки ESLint сгенерирует файл .eslintrc.cjs
с выбранными вами настройками.
3.2 Настройка ESLint
Настройка правил ESLint необходима для приведения их в соответствие со стандартами кодирования вашего проекта. Откройте файл .eslintrc.cjs
в своем
каталог проекта и соответствующим образом измените правила. Например:
module.exports = { "env": { "browser": true, "commonjs": true, "es2021": true, "jest": true, }, "extends": "standard", "overrides": [ { "env": { "node": true }, "files": [ ".eslintrc.{js,cjs}" ], "parserOptions": { "sourceType": "script" } } ], "parserOptions": { "ecmaVersion": "latest" }, rules: { // Add your custom ESLint rules here 'no-console': 'warn', 'no-unused-vars': 'error', // ... }, }
Определив правила в вашей конфигурации ESLint, вы можете гарантировать, что кодовая база соответствует вашим желаемым соглашениям о написании кода.
Затем в файле package.json
добавьте следующие команды в свои скрипты:
{ //... "scripts": { //... "lint": "eslint .", "lint: fix": "eslint --fix ." }, //... }
Затем запустите команду lint с помощью npm:
npm run lint
Судя по приведенному выше изображению, очевидно, что присутствует несколько ошибок, особенно в конкретном файле, который не соответствует критериям ESLint. Впоследствии мы переходим к решению этих проблем по отдельности или используем команду npm run lint:fix
для потенциального исправления ошибок, которые могут быть устранены автоматически.
Для проблем, которые можно исправить, используйте:
npm run lint:fix
Примечательно, что некоторые программы, такие как CRA (Create React App) и Vite, по умолчанию включают ESLint, что устраняет необходимость в отдельной настройке ESlint. Хорошо, попробуйте и посмотрите, поняли ли вы идею! Я надеюсь, что вы сделали. Отлично, продолжаем. Дальше красивее!
3.3 Автоматизация форматирования кода с помощью Prettier
Автоматическое форматирование кода Prettier можно интегрировать в ваш проект, выполнив несколько простых шагов:
- Установите Prettier с помощью npm или yarn:
# Using npm npm install prettier --save-dev # Using yarn yarn add prettier --dev
- Создайте файл
.prettierrc.js
в каталоге проекта, чтобы определить параметры форматирования кода. Например:
module.exports = { singleQuote: true, trailingComma: 'es5', useTabs: false, };
После установки Prettier добавьте его в плагины и расширения в ESLint, что позволит дополнить форматирование Prettier.
Убедитесь в работоспособности Prettier, установив Расширение Prettier для VSCode.
В настройках убедитесь, что форматтер по умолчанию установлен на Prettier, и включите функцию «форматировать при сохранении».
И вот оно, всякий раз, когда вы сохраняете файл во время работы над определенной задачей, Prettier автоматически выполняет свою функцию форматирования.
3.4 Установка Хаски
Husky можно легко установить с помощью менеджера пакетов, такого как npm или yarn. Откройте терминал и перейдите в каталог проекта.
Следует всегда помнить, что концепция Husky вращается вокруг настройки ESLint или выполнения линтинга непосредственно перед или во время подготовки к коммиту. Этот подход направлен на предотвращение загрязнения существующего стиля кода другим элементом, среди прочего, путем выполнения сценария перед фиксацией. Я чувствую, что это здорово.
Настройка:
# Using npm npm install husky --save-dev # Using yarn yarn add husky --dev
Впоследствии выполните:
npx husky init
После установки Husky предоставляет простой, но мощный способ управления хуками Git.
3.5 Настройка хуков Husky
Хуки Husky — это скрипты, которые запускаются автоматически перед определенными действиями Git. Чтобы настроить хук перед фиксацией, который объединяет ESLint и Prettier, выполните следующие действия:
- Откройте файл
package.json
вашего проекта. - Добавьте свойство
husky
, чтобы определить свои хуки. Вот пример конфигурации для запуска ESLint и Prettier перед фиксацией:
{ "husky": { "hooks": { "pre-commit": "lint-staged" } } }
вот пример хриплого файла pre-commit, который будет в сгенерированной папке .husky
#!/bin/sh . "$(dirname "$0")/_/husky.sh" npx lint-staged
В этом примере lint-staged
— это инструмент, который запускает линтеры для промежуточных файлов. Затем мы можем настроить lint-staged
для запуска ESLint и Prettier.
3.6 Интеграция редактора
Интеграция Husky, ESLint и Prettier с вашим редактором кода расширяет возможности разработки, предоставляя обратную связь в режиме реального времени. Большинство современных редакторов кода поддерживают расширения или плагины для этих инструментов. Так же, как указано для более красивого, ранее. Вот как вы можете интегрировать их с популярными редакторами:
- Visual Studio Code: установите расширения ESLint и Prettier из магазина Visual Studio Code. После установки эти расширения будут автоматически применять линтинг и форматирование к вашему коду по мере его написания.
- Sublime Text: используйте пакеты SublimeLinter-eslint и SublimeLinter-contrib-prettier для интеграции ESLint и Prettier в Sublime Text.
- Atom: установите пакеты linter-eslint и atom-prettier, чтобы включить анализ и форматирование в редакторе Atom.
Интегрируя эти инструменты в свой редактор кода, вы сразу же получаете обратную связь о качестве и форматировании кода, гарантируя, что ваш код соответствует стандартам, когда вы его пишете.
4. Реальные примеры: задействуем трио
В этом разделе мы рассмотрим два реальных примера, чтобы продемонстрировать, как трио Husky, ESLint и Prettier улучшает рабочие процессы разработки интерфейса.
4.1 Пример 1: Создание компонента React
Давайте рассмотрим сценарий, в котором вы создаете компонент React с именем Button
. С трио Husky, ESLint и Prettier ваш рабочий процесс будет выглядеть следующим образом:
- Написание кода. Когда вы пишете код для компонента
Button
, ESLint предоставляет обратную связь в режиме реального времени о потенциальных проблемах, таких как синтаксические ошибки, неиспользуемые переменные и соблюдение стандартов кодирования. - Форматирование. Prettier автоматически форматирует ваш код в соответствии с заданным руководством по стилю. Это гарантирует, что ваш код останется согласованным и будет соответствовать лучшим практикам.
- Проверки перед фиксацией. Перед фиксацией изменений срабатывает хук Husky перед фиксацией. Он запускает lint-staged, который, в свою очередь, запускает ESLint и Prettier для подготовленных файлов. Любые ошибки или проблемы с форматированием обнаруживаются и отображаются.
- Коммит. Благодаря чистому коду и правильному форматированию вы можете уверенно фиксировать свои изменения, зная, что добавляете в репозиторий высококачественный код.
4.2 Пример 2: Совместная разработка проекта
Рассмотрим более крупный проект с несколькими разработчиками, работающими над разными функциями. Трио Husky, ESLint и Prettier становится бесценным в этом сценарии:
- Запросы на вытягивание. Когда разработчики создают запросы на вытягивание, перехватчики предварительной фиксации и предварительной отправки гарантируют, что код соответствует стандартам кодирования. Это сводит к минимуму вероятность внесения ошибок или несоответствий.
- Проверки кода. Во время проверки кода ESLint выделяет проблемы, которые могут решить рецензенты, повышая эффективность процесса проверки. Код в более красивом формате визуально непротиворечив, что позволяет рецензентам сосредоточиться на логике и функциональности.
- Непрерывная интеграция. Автоматическое тестирование и конвейеры непрерывной интеграции также выигрывают от этого трио. Код, который проходит проверки перед фиксацией и перед отправкой, с большей вероятностью пройдет автоматические тесты, что снижает вероятность сбоев сборки.
5. Лучшие практики и настройка
Хотя исходные конфигурации, предлагаемые ESLint и Prettier, ценны, их настройка в соответствии с уникальными требованиями вашего проекта имеет решающее значение. С учетом сказанного давайте углубимся в некоторые рекомендуемые практики и советы по настройке, которые, несомненно, должны быть частью вашего набора инструментов.
5.1 Выбор правил ESLint
Обширный набор правил ESLint может показаться ошеломляющим. При выборе правил для вашего проекта учитывайте следующее:
- Тип проекта. Различные типы проектов могут иметь разные требования. Например, внутренний проект Node.js может иметь другие правила ESLint по сравнению с внешним проектом.
- Консенсус команды: сотрудничайте со своей командой разработчиков, чтобы определить набор правил, с которыми все согласны. Это обеспечивает согласованность и предотвращает разногласия в дальнейшем.
- Распространенные ошибки. Правила ESLint могут обнаруживать распространенные ошибки и потенциальные ошибки. Установите приоритет правил, которые решают проблемы, характерные для вашей кодовой базы.
5.2 Адаптация красивого форматирования
Prettier предлагает широкий спектр параметров форматирования, которые вы можете настроить в соответствии с предпочтениями вашей команды. Некоторые параметры настройки включают в себя:
- Отступ. Установите количество пробелов или табуляции, используемых для отступа.
- Точки с запятой. Выберите, использовать ли точку с запятой в конце операторов.
- Длина строки. Определите максимальную длину строки до того, как Prettier перенесет строки.
- Кавычки. Укажите, следует ли использовать одинарные или двойные кавычки для строк.
Настроив эти параметры форматирования, вы можете убедиться, что Prettier соответствует стандартам кодирования вашего проекта и визуальным предпочтениям.
6. Будущие тенденции и выводы
Поскольку фронтенд-разработка продолжает развиваться, такие инструменты, как Husky, ESLint и Prettier, вероятно, станут еще более неотъемлемой частью рабочего процесса разработки. Поскольку все большее внимание уделяется качеству кода, совместной работе и эффективности, разработчики будут продолжать искать способы оптимизации своих процессов и предоставления высококачественных веб-приложений.
Я уверен, что после прочтения этой статьи вы должны иметь представление об этих трех компонентах (Eslint, Prettier и Husky), их функциях на пути разработки и шагах, связанных с их настройкой. до практического использования. Это понимание — то, что действительно приносит мне удовлетворение при создании этой статьи — акт обмена этими знаниями. Вы согласны? Да, лол, Фантастика!
Таким образом, трио Husky, ESLint и Prettier позволяет разработчикам интерфейсов создавать точный, чистый и безошибочный код. Эта комбинация устанавливает эталон превосходной разработки внешнего интерфейса за счет соблюдения стандартов кодирования, быстрого выявления ошибок и автоматизации форматирования кода. Посвятив усилия настройке и совершенствованию инструментов, разработчики могут раскрыть потенциал проекта и внести свой вклад в развитие сообщества разработчиков.
Продолжай строить и учиться, приятель! Чтобы узнать больше подобного контента, оставайтесь на связи в моем блоге. С нетерпением жду вашего возвращения.
А пока, Мерси!👋
Полезные ресурсы, которые я использовал в этой статье: Prettier: https://prettier.io/ ESLint: https://eslint.org/ Husky: https://www.npmjs.com/package/husky