Husky v5 не создает Git-хуков

#git #husky

#git #husky

Вопрос:

Я установил Husky v5 в своем приложении, и я хотел бы запустить lint-staged команду после фиксации.

Я следил за документами по началу работы, но в моих файлах конфигурации git не был создан файл .git / hooks / pre-commit.

Итак, когда я совершаю коммит, хук не запускается, и коммит проходит сразу, не проверяясь lint-staged .

Я попытался запустить yarn add -D husky@next или npm i -D husky@next . Я также попытался удалить node_modules и перестроить npm.

.husky / предварительная фиксация

 #!/bin/sh
[ -z "$CI" ] amp;amp; exit 0

. "$(dirname $0)/_/husky.sh"

lint-staged
 

package.json

 "scripts": {
  "postinstall": "husky install"
},
 

Комментарии:

1. то же самое с husky 7.0.4

2. Потому 7.0.4 что я сделал npx husky install так, как он просил, и это сработало.

Ответ №1:

husky v5 не генерирует перехваты (не могу сказать почему)
, поэтому я понизил рейтинг до 4.3.8 и удалил .git / hooks(не обязательно):

 rm -rf .git/hooks
yarn add -D husky@4.3.8
 

Комментарии:

1. Могу подтвердить. С husky@5.0.9 помощью git-перехватов папка не создавалась, и при фиксации она жаловалась husky-run , что ее невозможно найти. Понижение до husky@4.3.8 сработало.

Ответ №2:

Немного поздно, но сегодня у меня тоже была эта проблема. После долгих поисков я нашел эту проблему, которая описывает проблемы с установкой, связанные с Yarn. В моем случае yarn неправильно запускал скрипт после установки из husky, и, как было рекомендовано, я обнаружил, что изменение моей postinstall строки на это решило package.json мою проблему:

 {
    "postinstall": "node ./node_modules/husky/lib/installer/bin install"
}
 

Я запускал и повторно запускал установку несколько раз из разных мест во время завершения моей настройки. Я нашел этот список инструкций полезным для того, чтобы убедиться, что я каждый раз сбрасывал конфигурацию git в согласованное состояние, в частности, в строке с упоминанием hooksPath .

Ответ №3:

Вам нужно будет добавить yarn before lint-staged в свой .husky/pre-commit файл:

 #!/bin/sh
[ -z "$CI" ] amp;amp; exit 0

. "$(dirname $0)/_/husky.sh"

yarn lint-staged
 

Это из-за:

Если вы вызывали непосредственно локально установленные двоичные файлы, вам необходимо запустить их через менеджер пакетов

Более подробную информацию вы можете найти здесь и здесь . Надеюсь, это поможет 🙂