intermediate
npm/pnpm/yarn workspaces
Используйте workspace linking, общую установку, filtered scripts и ясные границы пакетов до тяжёлой оркестрации.
Workspaces npm, pnpm и Yarn — базовый слой многих JS-монорепо: одна установка, локальный linking и скрипты на пакет. Часто хватает до Turborepo или Nx.
| Задача | Нативно в workspaces | Часто нужна оркестрация | |--------|----------------------|-------------------------| | Общая установка | Да | — | | Локальный linking | Да | — | | DAG задач + remote cache | Ограничено | Turborepo / Nx | | Affected testing | Ручные filters | Graph tools |
Sibling dependencies явно в манифесте каждого пакета. Корневые скрипты — вход CI (`pnpm -r test`, `npm run test --workspaces`).
На интервью: discovery workspaces, filtered commands, публикация internal packages, политика версий и границы app vs library.
Типовые ошибки: структура папок вместо архитектуры; cross-import без dependency; root deps маскируют отсутствие deps в пакете.
Компромисс — низкая церемония multi-package dev против отсутствия graph-aware автоматизации.
Чеклист:
- Явные API и ownership пакетов.
- Все sibling dependencies задекларированы.
- Filters в CI для изменённых пакетов.
- Оркестрация при росте скриптов и кэша.