intermediate
Yarn
Различайте Yarn Classic и Modern, lockfiles, workspaces и компромиссы Plug and Play.
У Yarn несколько поколений. Yarn Classic (v1) часто в старых кодовых базах; Modern Yarn (Berry, v2+) добавляет Plug'n'Play, constraints, zero-install и строгие immutable installs. На интервью сначала определите поколение Yarn в проекте.
| Поколение | Lockfile | Особенности | |-----------|----------|-------------| | Classic v1 | `yarn.lock` | Hoisted `node_modules`, привычно после npm | | Modern Berry | `yarn.lock` + `.yarn/` | Опциональный PnP, zero-install, `yarn workspaces` |
# Immutable install в CI (Modern Yarn, концептуально)
yarn install --immutable
Workspaces координируют multi-package репозитории. Plug'n'Play убирает `node_modules` в пользу карт разрешения — строже и быстрее, но части инструментов нужны SDK shim.
На интервью: review `yarn.lock`, workspace-команды, компромиссы PnP, zero-install и immutable install в CI.
Типовые ошибки: команды Berry в Classic-репо; PnP без SDK в редакторе; «Yarn = npm» во всех версиях.
Компромисс — современная строгость и фичи против цены миграции с Classic.
Чеклист:
- Определите major-поколение Yarn.
- Объясните PnP vs `node_modules` при необходимости.
- Immutable install в CI для Modern Yarn.
- Документируйте SDK для PnP.