Помните мысль, принесенную gitHook🤔

внешний интерфейс

предисловие

я смотрюVue CLI文档когда выяснилось, что вCLI服务следующийGit Hook.

После установки@vue/cli-serviceтакже установимyorkie, это поставит вас вpackage.jsonизgitHooksХук Git удобно указать в поле:

{
  "gitHooks": {
    "pre-commit": "lint-staged"
  }
}

yorkieэто вилкаhuskyВстроенный@vue/cliсередина.

Увидев это, я задумался над вопросом: когда я устанавливал полку vue, githook использовалhusky, то возникает проблема, так как@vue/cliОн уже встроен, зачем мне его заново устанавливать?husky, так что есть следующая история.

история

установить еще одинhuskyЗаставляет меня чувствовать себя лишним, может быть, ОКР. так что я здесьpackage.jsonпрямо в"husky": "^1.3.1"Удалил, так намного удобнее, да и эксплуатация лютая как тигр по документу.

Открытьhusky.config.js, копировать, удалять

module.exports = {
  hooks: {
    'pre-commit': 'npm run fix',
    'commit-msg': 'commitlint -E HUSKY_GIT_PARAMS'
  }
};

Открытьpackage.json, паста, слегка модифицированная

{
  "gitHooks": {
    "pre-commit": "npm run fix",
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
  }
}

Готово, предварительная операция 👀

git commit -m "test"

Результат: Успех!

Я просто гений, ха-ха. подожди, успех? исправление не сработало, коммитлинт не сработал.

небольшая мысль

Файлы gitHook хранятся в.git/hooks, давайте посмотрим, что происходит

Открыть.git/hooks/commit-msg

#!/bin/sh
# husky

# Hook created by Husky
#   Version: 1.3.1
#   At: 2019-4-10 21:26:25
#   See: https://github.com/typicode/husky#readme

...

Тише? Разве это не удалено? Это потому, что поза удаления неверна?

npm uninstall husky

посмотри снова.git/hooks/commit-msgУдалил, очень доволен.

Попробуйте снова

git commit -m "test"

Результат: Успех! Так тяжело видеть неудачу.

подумай еще раз

Установитьhuskyпрямо когда.git/hooksКрючки меняются, затем с помощью@vue/cliпри создании проекта.git/hooksподключается, чтобы внести изменения, поэтому установите сноваyorkieОн тоже изменится, да, тут только один ответ.

npm i yorkie

посмотри.git/hooks/commit-msg

#!/bin/sh
#yorkie 2.0.0

command_exists () {
  command -v "$1" >/dev/null 2>&1
}

...

Конечно же, третье испытание

git commit -m "test"

Результат: Неудачно! Наконец не удалось.

Error: Recieved 'HUSKY_GIT_PARAMS' as value for -E | ...

Переменные среды здесь забыли изменить, вyorkieтакже не нашел в . прочитай это.git/hooks/commit-msgдолжно бытьGIT_PARAMS.

Конечный результат: исправление работает, коммит работает.

Вы закончили 👏👏👏

Спокойный анализ

  • huskyПодобные инструменты будут создавать соответствующие хуки при их установке.
  • npmсуществуетinstallа такжеuninstallСкрипт может быть выполнен, когда --"Возможно, вы не знаете npm-скриптов"
  • удалить зависимости не вpackage.jsonудалить его прямо вnpm uninstallудалить
  • Читайте больше официальных документов, вас ждет много сюрпризов
  • Если вы столкнулись с проблемами, попробуйте еще, добавьте исходный код в документ, и все готово.

использованная литература