Перейти к содержимому
GitHubXDiscord

Настройка окружения

Монорепо Triggery — это pnpm workspace. Полный набор команд для чистого чекаута короткий: если pnpm test зелёный — окружение рабочее.

  • Node.js ≥ 20 (рекомендуется LTS).
  • pnpm ≥ 9 — включается через corepack enable && corepack prepare pnpm@latest --activate.
  • git с настроенным ключом подписи (опционально; подписанные коммиты рекомендованы, но не обязательны).

В корне репо лежит .devcontainer/, так что workspace можно открыть и в GitHub Codespaces или VS Code Dev Containers — локальная настройка тогда не нужна вовсе.

git clone https://github.com/triggeryjs/triggery.git
cd triggery
pnpm install
pnpm build
pnpm test

pnpm build обязателен перед первым запуском тестов, потому что часть пакетов импортирует собранный вывод своих зависимостей.

triggery/
├── packages/
│   ├── core/                 # Runtime + createTrigger + middleware
│   ├── react/  solid/  vue/  # Framework bindings (same API surface)
│   ├── testing/              # createTestRuntime, mockCondition, mockAction
│   ├── vite/                 # Vite plugin (auto-discovery + HMR)
│   ├── zustand/  redux/  jotai/  mobx/  reatom/  signals/  query/
│   ├── dom/  socket/
│   ├── eslint-plugin/  codemod/  cli/
│   └── devtools-redux/  devtools-bridge/  devtools-panel/
├── extensions/
│   └── chrome-devtools/      # DevTools panel extension
├── apps/
│   └── docs/                 # This site (Astro Starlight)
├── benchmarks/
│   ├── bench/core/           # Triggery dispatch hot-path
│   └── bench/vs/             # Side-by-side comparisons
├── examples/                 # Runnable Vite/Next/RN demos
├── templates/                # Starter templates for `triggery create`
└── .changeset/               # Changeset files (one per merged feature/fix)
cd apps/docs
pnpm dev

Dev-сервер Astro поднимается на http://localhost:4321/triggery/ (базовый путь совпадает с GitHub Pages). Превью «как в продакшене»:

pnpm --filter @triggery/docs build
pnpm --filter @triggery/docs preview

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

pnpm bench

Сьюты bench/vs/ печатают ops/sec бок о бок с effector / rxjs / saga / xstate / reatom / mobx. CodSpeed подбирает бенчи в CI; локально достаточно бенч-раннера Vitest.

pnpm lint            # Biome lint
pnpm format          # Biome write
pnpm typecheck       # tsc -b
pnpm test            # full test matrix
pnpm test:coverage   # Vitest coverage (core target ≥ 95%)
pnpm changeset       # add a changeset for a PR (only for packages/* changes)