npm i eslint-pre-commit-diff -D
В package.json нужно добавить поле
"scripts": {
"preCommitLinter": "node node_modules/eslint-pre-commit-diff --folder app"
}
// ...
"pre-commit": {
"run": ["preCommitLinter"]
}
На вход принимаются 2 параметра:
--folder - Название папки, которое должно присутствовать в пути до файла. @default: ''
--file-type - Какой тип файлов нужно проверять. @default: '.js'
В одном из проектов нужно было внедрить линтер для проверки кодстайла. Но как выяснилось было много разработчиком и еще больше легаси кода. Ошибок линтер находил больше 500к, руками править долго, а автофиксер не подходил из-за старых и объемных кусков кода. Поскольку разработчиков много, а времени на мерджреквесты не всегда найти для тщательной проверки, решили выбрать такой вариант: Перед коммитов проверять изменненый/новй код разработчика и не давать ему сделать коммит, пока он не поправит его по оговоренным правилам.
Используется библиотека pre-commit для вызова функции проверки. Она собирает все измененные файлы в данный момент, прогоняет их через eslint и оставляет только те куски кода, которые были изменены, что упрощает головную боль разработчикам и снимает её с кодревью.