#node.js #commit #husky
Вопрос:
У меня есть угловой проект, в котором я хочу обеспечить выполнение обычных коммитов. Мне не удалось успешно сделать правильный крюк, чтобы предотвратить неправильные крючки.
Я начал с этого урока, где говорилось, что в package.json нужно добавить следующее:
{
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
Это не сработало (он все еще допускал плохие коммиты), поэтому я провел некоторое исследование и нашел эту статью, в которой говорилось, что вышесказанное относится к husky 4, а для husky 5 я должен выполнить эту команду:
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
Из того, что я могу сказать, официальные документы committlint говорят, чтобы сделать это таким же образом. Однако, когда я запускаю его, я получаю это странное приглашение, которое ничего не делает:
PS C:...MyProj> npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
Usage
husky install [dir] (default: .husky)
husky uninstall
husky set|add <file> [cmd]
Это просто сбивает с толку, потому что то, что я написал, на самом деле следует за третьей строкой приглашения.
Кто-нибудь проходил через это и может помочь мне понять, что мне нужно сделать?
Соответствующие части из пакета.json:
"scripts": {
"postinstall": "husky install"
},
"private": true,
"devDependencies": {
"@commitlint/cli": "^12.1.1",
"@commitlint/config-conventional": "^12.1.1",
"husky": "^6.0.0"
}
}
Ответ №1:
Похоже, возникла проблема с запуском npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
, потому что командная часть состояла из более чем одного слова. Обходной путь, который я нашел, состоял в том, чтобы разделить его на две части.
1 — Звонок npx husky add .husky/commit-msg
Это создало пустой файл/ файл по умолчанию в нужном месте со следующим содержимым:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
undefined
2 — Затем я просто заменил undefined
на npx --no-install commitlint --edit $1
, и это работает
Эта часть документов committlint помогла мне понять, что делать это таким образом было нормально
Надеюсь, это поможет всем, кто столкнется с той же проблемой!