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 для изменённых пакетов.
  • Оркестрация при росте скриптов и кэша.