Конфигурация lint-staged + commitizen, подходящая для командной строки и Intellij - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь создать такую ​​конфигурацию, которая бы работала как для командной строки, так и для 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 files committed, 1 file failed to commit: feat(asdf): asdfasd fasdf asdfa333 husky > pre-commit (node v10.13.0) Stashing changes... [started] Stashing changes... [skipped] → No partially staged files found... Running linters... [started] Running tasks for *.js [started] eslint --fix [started] eslint --fix [completed] git add [started] git add [completed] Running tasks for *.js [completed] Running linters... [completed] husky > prepare-commit-msg (node v10.13.0) /bin/sh: 1: cannot open /dev/tty: No such device or address husky > prepare-commit-msg hook failed (cannot be bypassed with --no-verify due to Git specs)

Это решение для этого?

1 Ответ

0 голосов
/ 12 июня 2019

Я только что столкнулся с этой проблемой сам.

Проблема может быть решена довольно легко, просто добавьте короткое замыкание при отказе TTY

exec < /dev/tty && git cz --hook || true # <-- Notice the '|| true'

Это также было поднято как проблемав официальном репозитории инструмента.

см .: https://github.com/commitizen/cz-cli/issues/634

...