Хуки коммитов
Используйте vp config для установки хуков коммитов и vp staged для запуска проверок над индексированными файлами.
Обзор
Vite+ поддерживает хуки коммитов и проверки индексированных файлов без использования дополнительных инструментов.
Используйте:
vp configдля настройки хуков проекта и связанных интеграцийvp stagedдля запуска проверок над файлами, которые в данный момент находятся в индексе Git
Если вы используете vp create или vp migrate, Vite+ предложит автоматически настроить это для вашего проекта.
Команды
vp config
vp config настраивает Vite+ для текущего проекта. Команда устанавливает Git-хуки, настраивает каталог хуков, а также может выполнять связанные интеграции проекта, например настройку агентов. По умолчанию хуки записываются в .vite-hooks:
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+ для управления хуками коммитов, эта команда будет автоматически запускаться при коммите локальных изменений.
vp staged
vp staged --verbose
vp staged --fail-on-changesКонфигурация
Определите проверки индексированных файлов в блоке staged файла vite.config.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+ будут немедленно завершаться, не выполняя никаких действий:
VITE_GIT_HOOKS=0 git commit -m "content update"HUSKY=0 поддерживается аналогичным образом для совместимости с инструментами экосистемы. Установка VITE_GIT_HOOKS=0 в окружении также предотвращает повторную установку хуков командой vp config, если выполняется сценарий жизненного цикла, такой как prepare.
Скрипт инициализации
Перед проверкой переменной окружения каждый хук подключает скрипт инициализации, если он существует:
$XDG_CONFIG_HOME/vite-plus/hooks-init.sh(по умолчанию~/.config/vite-plus/hooks-init.sh)$XDG_CONFIG_HOME/husky/init.shв качестве резервного варианта
Чтобы отключить хуки для всей машины, создайте скрипт инициализации и экспортируйте в нём переменную:
export VITE_GIT_HOOKS=0Поскольку сам хук читает этот файл, всё будет работать даже в том случае, если процесс, выполняющий коммит, не наследует окружение вашей оболочки — например, когда коммиты выполняются демоном или веб-сервером.
Удаление хуков коммитов
Чтобы полностью удалить хуки коммитов Vite+, отмените все изменения, внесённые командой vp config:
- Удалите путь к Git-хукам, указывающий на диспетчер Vite+:
git config --unset core.hooksPath- Удалите каталог с хуками (используйте значение
--hooks-dir, если вы его изменяли):
rm -rf .vite-hooksУдалите
vp configиз сценарияprepareвpackage.json. В противном случае при следующей установке зависимостей командаvp configбудет выполнена снова и переустановит хуки.Удалите блок
stagedизvite.config.ts, если он присутствует.