Обновление: есть лучший способ добавить в проект хуки перед фиксацией. Касса хаски. Вы можете следовать приведенному ниже руководству, чтобы узнать, как вручную добавлять перехватчики перед фиксацией.

Прежде чем мы продолжим, я хотел бы немного рассказать о ловушке предварительной фиксации ESLint и Git. Если вы знакомы с ними, можете пропустить следующие два раздела.

ESLint

Разработчики склонны допускать ошибки при кодировании. Например, вы можете забыть закрыть скобку или создать уже существующую переменную. Но подобные ошибки могут привести к поломке вашего приложения или сайта. Мы можем отправить этот ошибочный код в облачный репозиторий, или может потребоваться значительное время, чтобы решить проблемы, вызванные такими ошибками. Если ваш код находится на рассмотрении, ваш рецензент потратит время на поиск таких небрежных ошибок или может полностью его пропустить.

Вот тут-то на сцену выходит линтинг. Линтинг - это процесс запуска программы, которая анализирует код на предмет потенциальных ошибок. Для линтинга таких потенциальных ошибок мы используем ЛИНТЕР.

Линтеры помогают заставить разработчика писать чистый код. У каждого языка может быть свой линтер для линтинга кода. Вот ссылка, которая мне понравилась, в которой перечислены несколько хороших линтеров для написания более чистого кода:
https://github.com/showcases/clean-code-linters

Среди них мы будем особо говорить о ESLint, который представляет собой современный инструмент линтинга для линтинга JavaScript / ECMAScript 6. Согласно описанию на их веб-сайте,

ESLint - это утилита линтинга JavaScript с открытым исходным кодом, первоначально созданная Николасом Закасом в июне 2013 года. Линтинг кода - это тип статического анализа, который часто используется для поиска проблемных шаблонов или кода, который не соответствует определенным правилам стиля.

Проще говоря, он используется для проверки ваших файлов JavaScript на предмет потенциальных ошибок. «ES» в ESLint означает ECMAScript. Вы можете создать файл конфигурации .eslintrc и указать правила, по которым вы хотите проверить свой код. Вы можете линтировать свой код на лету в желаемом редакторе (проверьте, есть ли плагин / API для интеграции ESLint с вашим редактором) или вы можете линтировать его с помощью инструментов командной строки. Выбор остается за вами. Я предпочитаю линтинг на лету.

Обработка Git перед фиксацией

Обсуждая ESLint, я привел пример, в котором упомянул, что разработчик может в конечном итоге выдвинуть ошибочный код, даже если код недействителен. Даже если вы настроили линтер, он может защитить вас от недопустимого кода, но не сможет защитить вас от отправки этого недопустимого кода в репо. Нам нужен механизм, чтобы остановить отправку такого кода в репо.

Здесь находится ловушка предварительной фиксации Git. Он не позволит разработчику зафиксировать код, если он не выполнит правила, установленные хуками, доступными в .git/hooks. Эти хуки должны быть исполняемыми.

Обратите внимание, что обработчик предварительной фиксации Git может использоваться не только для проверки вашего кода. Для получения информации о Git Hooks посетите https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks

Обработчик предварительной фиксации ESLint Git

Я бы использовал существующий скрипт https://gist.github.com/linhmtran168/2286aeafe747e78f53bf

Ниже приведены шаги, которые я выполнил для линтинга JavaScript / ES6 перед фиксацией:

  1. Если вы не инициализировали git для своего репо, сделайте это, выполнив команду:
    git init
  2. Вы должны увидеть папку .git, созданную в папке вашего проекта.
  3. Перейти к .git/hooks. Вы увидите файл с именем pre-commit.sample
  4. Переименуйте этот файл в pre-commit
  5. Удалите существующий образец кода.
  6. Я изменил сценарий https://gist.github.com/linhmtran168/2286aeafe747e78f53bf в соответствии с комментарием iamjochem в Gist и создал свой собственный Gist, чтобы использовать его с ESLint.
    Https://gist.github.com/rashtay/328da46a99a9d7c746636df1cf769675
  7. Запустите chmod +x .git/hooks/pre-commit, чтобы сделать его исполняемым файлом.
  8. Вуаля!

Я хотел бы услышать отзывы / предложения по улучшению.