@triggery/vite
Плагин Vite, который автоматически находит каждый *.trigger.ts в проекте и регистрирует его при старте приложения. Один импорт virtual:triggery-registry в точке входа — и все триггеры активны, без ручной развязки импортов. С поддержкой HMR: правка триггера перезапускает createTrigger(...), добавление или переименование файлов инвалидирует виртуальный модуль.
Установка
Заголовок раздела «Установка»pnpm add -D @triggery/vite npm install --save-dev @triggery/vite yarn add --save-dev @triggery/vite bun add -D @triggery/vite Peer-зависимости: vite ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0.
Что внутри
Заголовок раздела «Что внутри»| Экспорт | Назначение |
|---|---|
triggery(options?) (default) | Vite-плагин. Возвращает Plugin, который добавляется в массив plugins. |
virtual:triggery-registry | Виртуальный модуль с побочным эффектом — импортирует все подходящие файлы. |
Быстрый пример
Заголовок раздела «Быстрый пример»vite.config.ts
import { defineConfig } from 'vite';
import triggery from '@triggery/vite';
export default defineConfig({
plugins: [triggery({ glob: 'src/**/*.trigger.ts' })],
});src/main.tsx
import 'virtual:triggery-registry';
// ...rest of your bootstrapЭто вся настройка. Каждый файл, соответствующий glob-паттерну, автоматически импортируется — и его top-level вызов createTrigger(...) регистрируется в дефолтном рантайме.
| Опция | По умолчанию | Описание |
|---|---|---|
glob | 'src/**/*.trigger.{ts,tsx,js,jsx}' | Один паттерн или массив. Всё, что принимает tinyglobby. |
- Правка существующего файла триггера просто перезапускает его
createTrigger(...)— в рантайме срабатывает правило «last-mount-wins» и заменяет старую регистрацию. В коде приложения никаких специальных действий не нужно. - Добавление / удаление / переименование файла триггера инвалидирует виртуальный модуль, чтобы список импортов перестроился на следующем запросе.
Декларация типов
Заголовок раздела «Декларация типов»Добавь одну ambient-декларацию, чтобы TypeScript знал о виртуальном модуле:
src/vite-env.d.ts
/// <reference types="vite/client" />
declare module 'virtual:triggery-registry';Связанные пакеты
Заголовок раздела «Связанные пакеты» @triggery/core Рантайм, к которому подключаются зарегистрированные триггеры.
@triggery/react Самое частое сочетание — Vite + React.
@triggery/solid В паре с vite-plugin-solid.
@triggery/vue В паре с @vitejs/plugin-vue.
@triggery/cli triggery graph читает те же *.trigger.ts.