Prettier — это самоуверенный форматировщик кода, который автоматически форматирует код. Таким образом, формат кода становится единым на протяжении всего проекта. Если несколько разработчиков работают над одним и тем же проектом, вполне вероятно, что у них могут быть разные настройки текстового редактора, что может сделать формат кода несогласованным. Например, текстовый редактор разработчика «А» может занимать больше места на вкладках, чем разработчик «Б», из-за разных настроек текстового редактора. Чтобы решить эту проблему, у Prettier есть файл конфигурации, в котором определены все настройки, что делает формат кода согласованным во всем проекте независимо от настроек их редактора.

ESLint — утилита для поиска ошибок. Основная цель использования ESLint — поддерживать согласованность нашего формата кода, а также легко находить ошибки.

Husky — это инструмент JavaScript, который позволяет запускать некоторый код в различных частях рабочего процесса Git. Он использует Git Hooks и перехватывает различные события Git, такие как pre-commit и pre-push.

Lint-staged позволяет запускать код для поэтапных файлов git, чтобы автоматизировать утомительную часть вашего рабочего процесса, такую ​​как форматирование с помощью Prettier и/или анализ с помощью ESLint.

  • На приведенной выше диаграмме показан процесс автоматизации Prettier, ESLint с использованием Husky и Lint-staged.
  • Когда разработчик пытается зафиксировать промежуточные файлы, Husky перехватит фиксацию и запустит git-хук перед фиксацией.
  • Как следует из названия, предварительная фиксация на самом деле является ловушкой, которая запускается перед фиксацией. Причина запуска хука перед фиксацией состоит в том, чтобы проверить, все ли файлы правильно отформатированы и не содержат ошибок, прежде чем они будут зафиксированы.
  • Затем Husky вызовет Lint-staged.
  • Lint-staged в основном содержит программу/код, который форматирует файлы и проверяет наличие ошибок.
  • Если есть какая-либо ошибка, файлы не будут зафиксированы, а ошибки будут показаны.
  • Остальные файлы будут зафиксированы.