Понимание роли 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 можно интегрировать в ваш проект, выполнив несколько простых шагов:

  1. Установите Prettier с помощью npm или yarn:
# Using npm
npm install prettier --save-dev
# Using yarn
yarn add prettier --dev
  1. Создайте файл .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, выполните следующие действия:

  1. Откройте файл package.json вашего проекта.
  2. Добавьте свойство 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 ваш рабочий процесс будет выглядеть следующим образом:

  1. Написание кода. Когда вы пишете код для компонента Button, ESLint предоставляет обратную связь в режиме реального времени о потенциальных проблемах, таких как синтаксические ошибки, неиспользуемые переменные и соблюдение стандартов кодирования.
  2. Форматирование. Prettier автоматически форматирует ваш код в соответствии с заданным руководством по стилю. Это гарантирует, что ваш код останется согласованным и будет соответствовать лучшим практикам.
  3. Проверки перед фиксацией. Перед фиксацией изменений срабатывает хук Husky перед фиксацией. Он запускает lint-staged, который, в свою очередь, запускает ESLint и Prettier для подготовленных файлов. Любые ошибки или проблемы с форматированием обнаруживаются и отображаются.
  4. Коммит. Благодаря чистому коду и правильному форматированию вы можете уверенно фиксировать свои изменения, зная, что добавляете в репозиторий высококачественный код.

4.2 Пример 2: Совместная разработка проекта

Рассмотрим более крупный проект с несколькими разработчиками, работающими над разными функциями. Трио Husky, ESLint и Prettier становится бесценным в этом сценарии:

  1. Запросы на вытягивание. Когда разработчики создают запросы на вытягивание, перехватчики предварительной фиксации и предварительной отправки гарантируют, что код соответствует стандартам кодирования. Это сводит к минимуму вероятность внесения ошибок или несоответствий.
  2. Проверки кода. Во время проверки кода ESLint выделяет проблемы, которые могут решить рецензенты, повышая эффективность процесса проверки. Код в более красивом формате визуально непротиворечив, что позволяет рецензентам сосредоточиться на логике и функциональности.
  3. Непрерывная интеграция. Автоматическое тестирование и конвейеры непрерывной интеграции также выигрывают от этого трио. Код, который проходит проверки перед фиксацией и перед отправкой, с большей вероятностью пройдет автоматические тесты, что снижает вероятность сбоев сборки.

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