Skip to content

Хуки коммитов

Используйте vp config для установки хуков коммитов и vp staged для запуска проверок над индексированными файлами.

Обзор

Vite+ поддерживает хуки коммитов и проверки индексированных файлов без использования дополнительных инструментов.

Используйте:

  • vp config для настройки хуков проекта и связанных интеграций
  • vp staged для запуска проверок над файлами, которые в данный момент находятся в индексе Git

Если вы используете vp create или vp migrate, Vite+ предложит автоматически настроить это для вашего проекта.

Команды

vp config

vp config настраивает Vite+ для текущего проекта. Команда устанавливает Git-хуки, настраивает каталог хуков, а также может выполнять связанные интеграции проекта, например настройку агентов. По умолчанию хуки записываются в .vite-hooks:

bash
vp config
vp config --hooks-dir .vite-hooks
vp config --no-hooks
vp config --no-agent

Используйте --no-hooks, если хотите, чтобы vp config оставил существующие Git-хуки без изменений. Используйте --no-agent, если хотите пропустить обновления существующих файлов инструкций для агента кодирования. Вы можете передать оба флага, если хотите, чтобы vp config пропустил оба шага настройки.

Также вы можете установить VITE_GIT_HOOKS=0, чтобы отключить установку хуков из сценариев жизненного цикла, таких как prepare или postinstall.

vp staged

vp staged запускает проверки индексированных файлов, используя конфигурацию staged из vite.config.ts. Если вы настроили Vite+ для управления хуками коммитов, эта команда будет автоматически запускаться при коммите локальных изменений.

bash
vp staged
vp staged --verbose
vp staged --fail-on-changes

Конфигурация

Определите проверки индексированных файлов в блоке staged файла vite.config.ts:

vite.config.ts
ts
import { defineConfig } from 'vite-plus';

export default defineConfig({
  staged: {
    '*.{js,ts,tsx,vue,svelte}': 'vp check --fix',
  },
});

Это стандартный подход Vite+, который в большинстве проектов должен заменить отдельную конфигурацию lint-staged. Поскольку vp staged использует конфигурацию из vite.config.ts, проверки индексированных файлов хранятся в том же месте, что и настройки линтинга, форматирования, тестирования, сборки и выполнения задач.

Отключение хуков в определённых окружениях

Установленные хуки при каждом запуске проверяют окружение, поэтому их можно отключить для конкретной машины или процесса, не удаляя их. Это полезно, когда коммиты выполняются вне среды разработки, например через CMS с плоскими файлами (flat file CMS) или другими процессами.

Переменная окружения

Установите VITE_GIT_HOOKS=0 в окружении процесса, который выполняет git commit, и все хуки Vite+ будут немедленно завершаться, не выполняя никаких действий:

bash
VITE_GIT_HOOKS=0 git commit -m "content update"

HUSKY=0 поддерживается аналогичным образом для совместимости с инструментами экосистемы. Установка VITE_GIT_HOOKS=0 в окружении также предотвращает повторную установку хуков командой vp config, если выполняется сценарий жизненного цикла, такой как prepare.

Скрипт инициализации

Перед проверкой переменной окружения каждый хук подключает скрипт инициализации, если он существует:

  1. $XDG_CONFIG_HOME/vite-plus/hooks-init.sh (по умолчанию ~/.config/vite-plus/hooks-init.sh)
  2. $XDG_CONFIG_HOME/husky/init.sh в качестве резервного варианта

Чтобы отключить хуки для всей машины, создайте скрипт инициализации и экспортируйте в нём переменную:

~/.config/vite-plus/hooks-init.sh
sh
export VITE_GIT_HOOKS=0

Поскольку сам хук читает этот файл, всё будет работать даже в том случае, если процесс, выполняющий коммит, не наследует окружение вашей оболочки — например, когда коммиты выполняются демоном или веб-сервером.

Удаление хуков коммитов

Чтобы полностью удалить хуки коммитов Vite+, отмените все изменения, внесённые командой vp config:

  1. Удалите путь к Git-хукам, указывающий на диспетчер Vite+:
bash
git config --unset core.hooksPath
  1. Удалите каталог с хуками (используйте значение --hooks-dir, если вы его изменяли):
bash
rm -rf .vite-hooks
  1. Удалите vp config из сценария prepare в package.json. В противном случае при следующей установке зависимостей команда vp config будет выполнена снова и переустановит хуки.

  2. Удалите блок staged из vite.config.ts, если он присутствует.