Дата: 2026-07-21
Статус: accepted
Связанные issues: #15, follow-up #10
DPline — личный task-manager (Фаза 0). Нужна монорепа: apps/web (Vite+React+TS), apps/api (Node), позже packages/* для общих типов.
Ограничения:
#10–#14 (структура, CI) без смены менеджера пакетов.lint, typecheck) без переписывания всего.Плюсы: кэш задач, pipelines «как в индустрии».
Минусы: ещё один инструмент и кривая обучения; для двух apps на Фазе 0 — избыточно.
Плюсы: быстрые установки, строгие workspaces, минимум сущностей; скрипты в корневом package.json хватает для dev/build/lint.
Минусы: порядок скриптов и «кто от кого зависит» — вручную; turbo можно добавить позже без смены pnpm.
Плюсы: уже с Node.
Минусы: слабее DX для монореп; реже целевой выбор для новых TS-монореп.
Минусы: лишняя сложность (PnP и т.д.) для текущего уровня практики.
Отклонено: в plan/main.md зафиксирована монорепа.
pnpm (через Corepack, идёт с Node 20 LTS) + pnpm workspaces в одном репозитории. Turborepo на Фазе 0 не используем.
Версия Node для проекта: 20.x LTS (локально проверено: v20.18.0).
Версия pnpm: 9.15.9 (не 11.x — pnpm 11 требует Node ≥22).
Spike 2026-07-21: /tmp/pnpm-spike — pnpm-workspace.yaml + apps/web + apps/api, pnpm install и pnpm -r list успешны.
pnpm-lock.yaml) на весь репо.pnpm -r / фильтры -F для команд по пакетам.pnpm + кэш store.package.json: "private": true, "packageManager": "pnpm@…", scripts-обёртки.pnpm-workspace.yaml: apps/*, packages/* (packages можно пустым или заглушкой позже).apps/web — заготовка Vite+React+TS (или пустой package до #12 — по scope #10).apps/api — заготовка Node (или пустой package до #11)..npmrc при необходимости (например shamefully-hoist=false — дефолт pnpm ок).pnpm install, как запускать из корня.node_modules; lockfile — да.