Open Source

Сборка 100 пакетов за 1 секунду.

Content-addressable кэш, параллельное выполнение и обнаружение затронутых пакетов. kb-devkit запускает только то, что действительно изменилось.

curl -fsSL https://kblabs.ru/kb-devkit/install.sh | sh
ДокументацияGitHub Releases

Знакомо.

Правишь один пакет, ждёшь сборку всех ста. Снова. CI занимает 12 минут, хотя изменилось три строчки.

kb-devkit run build --affected. Строит только то, что затронуто, — и всё, что от этого зависит.

Запускаешь сборку снова. Ничего не изменилось, но она всё равно идёт полные 10 минут. Ты тратишь время, чтобы просто убедиться.

Content-addressable кэш восстанавливает артефакты за ~1ms. Если входные файлы не изменились — задача помечается как cached.

У каждого пакета своя схема команд. В одном npm run build, в другом make, в третьем что-то самописное. Невозможно запустить всё единообразно.

Один devkit.yaml в корне репозитория. Одна команда запускает build, lint, test — для всех пакетов, в правильном порядке.


Один файл конфигурации.

Положите devkit.yaml в корень репозитория. Объявите задачи и пресеты один раз — kb-devkit найдёт все пакеты автоматически.

Задачи поддерживают зависимости (^build = сначала собрать все deps), content-addressable кэш и параллельное выполнение. Используйте cache: false для задач с побочными эффектами.

devkit.yaml
version: 1

workspace:
  packageManager: pnpm

tasks:
  build:
    command: tsup
    inputs: ["src/**", "tsup.config.ts", "tsconfig*.json"]
    outputs: ["dist/**"]
    deps: ["^build"]

  lint:
    command: eslint src/
    inputs: ["src/**", "eslint.config.*"]
    outputs: []

  test:
    command: vitest run --passWithNoTests
    inputs: ["src/**", "test/**"]
    outputs: ["coverage/**"]
    deps: ["build"]

  deploy:
    command: ./scripts/deploy.sh
    inputs: ["dist/**"]
    cache: false

affected:
  strategy: submodules

Как это работает

Детали, которые важны, когда монорепо вырастает.

Content-addressable кэш

SHA256 входных файлов → ключ кэша. Попадание — артефакты восстанавливаются за ~1ms. Промах — задача выполняется и результат сохраняется. Один файл в двух пакетах хранится один раз.

Затронутые пакеты + downstream BFS

Находит пакеты, изменённые в git. Затем обходит граф обратных зависимостей BFS и включает всех downstream-потребителей. Три стратегии: git, submodules, command.

DAG-планировщик

Зависимости задач образуют граф. Алгоритм Кана разбивает его на слои: пакеты внутри слоя выполняются параллельно, слои — последовательно.

Проверки качества

Команды check, fix, stats валидируют пакеты по правилам из devkit.yaml: именование, tsconfig, eslint, зависимости, структура файлов.

Структурированный JSON-вывод

Флаг --json на каждой команде. Удобно для CI-пайплайнов, агентных сценариев и отладки. Envelope идентичен check --json.

Любой TypeScript/Node.js монорепо

Не требует специфической структуры. Внутри KB Labs управляет сборкой 125+ пакетов из 18 монорепо. Работает с pnpm, npm и yarn workspaces.


Команды

Все команды поддерживают --json для скриптов и агентных сценариев.

kb-devkit run build

Запустить задачу build для всех пакетов с кэшем и параллельным выполнением.

kb-devkit run build lint test --affected

Выполнить build, lint, test только для пакетов, изменённых в git, и их downstream-зависимостей.

kb-devkit run build --no-cache

Пропустить чтение и запись кэша для этого запуска. Артефакты не восстанавливаются.

kb-devkit check

Проверить все пакеты по правилам из devkit.yaml: именование, tsconfig, eslint, зависимости, структура.

kb-devkit fix

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

kb-devkit stats

Показать health score (A–F), количество проблем по категориям и метрики покрытия по всем пакетам.

kb-devkit doctor --json

Диагностика окружения: конфиг, node, pnpm, go. Возвращает подсказки для каждой проблемы.

kb-devkit gate

Pre-commit gate: проверяет только staged-файлы. Завершается с кодом 1 при нарушениях.


Скачать

Готовые бинарники для macOS, Linux и Windows. SHA-256 чексуммы включены в каждый релиз.

ПлатформаБинарникСкачать
macOS (Apple Silicon)kb-devkit-darwin-arm64Скачать
macOS (Intel)kb-devkit-darwin-amd64Скачать
Linux (x86_64)kb-devkit-linux-amd64Скачать
Linux (ARM64)kb-devkit-linux-arm64Скачать
Windows (x86_64)kb-devkit-windows-amd64.exeСкачать

Часть KB Labs

kb-devkit поставляется как самостоятельный инструмент и как часть платформы KB Labs. При установке KB Labs kb-devkit включается автоматически.

Установить KB Labs →