Конфигурация lint-staged + commitizen, подходящая для командной строки и Intellij
Я пытаюсь создать такую конфигурацию, которая будет работать как для командной строки, так и для Intellij.
Вот часть моего package.json
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"prepare-commit-msg": "exec < /dev/tty && git cz --hook",
"commit-msg": "validate-commit-msg"
}
},
"devDependencies": {
"commitizen": "^3.1.1",
"cz-conventional-changelog": "^2.1.0",
"eslint": "^5.15.1",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-plugin-import": "^2.16.0",
"eslint-plugin-jest": "^22.4.1",
"husky": "^1.3.1",
"lint-staged": "^8.1.5",
"standard-version": "^5.0.1",
"validate-commit": "^3.4.0"
он работает хорошо из командной строки, но при фиксации с Intellji он говорит что-то вроде
0 файлов подтверждено, 1 файл не был зафиксирован: feat(asdf): asdfasd fasdf asdfa333 husky > предварительная фиксация (узел v10.13.0) Сохранение изменений... [запущено] Сохранение изменений... [пропущено] → Нет частично подготовленных файлов найдено... Запуск линтеров... [запущено] Выполнение задач для *.js [запущено] eslint --fix [запущено] eslint --fix [завершено] git add [запущено] git add [выполнено] Выполнение задач для *. js [выполнено] Запуск линтеров... [завершено] husky > prepare-commit-msg (узел v10.13.0) /bin/sh: 1: не удается открыть /dev/tty: нет такого устройства или адреса husky> prepare-commit- Ошибка подключения к msg (не может быть обойдена с помощью --no-verify из-за спецификаций Git)
Это решение для этого?
0 ответов
Я только столкнулся с этой проблемой самостоятельно.
Проблема может быть решена довольно легко, просто добавьте короткое замыкание, когда TTY выходит из строя
exec < /dev/tty && git cz --hook || true # <-- Notice the '|| true'
Эта проблема также поднималась в официальном хранилище инструмента.