Текст и данные · Инструкция
yarn up -i интерактивное обновление зависимостей
`yarn up <package> -i` полезен, когда нужно подтвердить целевую версию интерактивно перед обновлением. В monorepo команда может затронуть несколько workspaces, поэтому после выбора версии проверяйте все изменённые manifests и `yarn.lock`, а не только пакет, из которого запускалась команда.
Короткий ответ
`yarn up <package> -i` позволяет интерактивно выбрать путь обновления, но команда действует на проект целиком и может затронуть несколько workspaces.
Почему важны interactive upgrade и yarn.lock
`yarn up` обновляет совпавшие `dependencies` и `devDependencies`; `peerDependencies` этой командой не меняются. В monorepo команда project-wide: одинаковая зависимость может измениться сразу в нескольких workspaces. Флаг `-i` предлагает варианты обновления; glob-шаблоны имён следует экранировать от shell, а major-релизы проверять по changelog.
Совет: В monorepo сначала найдите все объявления пакета — это дешевле, чем разбирать неожиданный diff после обновления.
Как проверить изменение через semver
- Шаг 1: Найдите зависимость во всех `package.json`, чтобы заранее понимать охват изменения.
- Шаг 2: Запустите `yarn up <package> -i` из корня проекта и выберите целевую версию осознанно.
- Шаг 3: Просмотрите diff каждого затронутого workspace и `yarn.lock`, а не только корневого manifest.
- Шаг 4: Запустите typecheck, тесты и сборку затронутых пакетов; для major-версии проверьте breaking changes.
Что сверить после интерактивного обновления
- До обновления известны все workspaces, где объявлена выбранная зависимость.
- Интерактивно выбрана именно ожидаемая версия или диапазон, а не просто самый новый вариант.
- Diff `package.json` по каждому workspace объясним и не затрагивает посторонние зависимости.
- Изменения `yarn.lock` соответствуют обновлению и не скрывают случайную массовую регенерацию.
- Typecheck, тесты и сборка проходят для реально затронутых пакетов.
Предупреждение: Не подтверждайте major-версию только по номеру: интерактивный выбор не проверяет совместимость вашего кода.
Как не превратить интерактивное обновление в массовый diff
До запуска найдите зависимость во всех `package.json` и запишите, какие диапазоны сейчас используются. После интерактивного выбора сравните diff по workspace: одинаковое имя пакета может встречаться как обычная, dev- или peer-зависимость, и желаемый диапазон не всегда одинаков для всех потребителей. Отдельно просмотрите `yarn.lock`: большой lock-diff допустим только тогда, когда его можно объяснить выбранным обновлением и пересчётом связанных транзитивных пакетов. Для major-версии проверки сборки недостаточно — сверяйте миграционные изменения публичного API, которые реально использует ваш код. Перед фиксацией обновлений сохраните lockfile в чистом состоянии: так интерактивный выбор легче проверить в diff и при необходимости откатить.
Почему нельзя принимать весь список обновлений вслепую
В большом monorepo нельзя принимать массовый diff только потому, что выбранная версия выглядит правильно для одного workspace.
Как проверить результат yarn up -i
Обновление можно принимать, когда охват diff совпадает с заранее найденными потребителями зависимости и проект проходит проверки с новым lock-файлом. Если `yarn up -i` изменил неожиданный workspace, не исправляйте результат вручную наугад: сначала верните diff и сузьте цель обновления, чтобы причина каждого изменения оставалась понятной.
Важно: PASS здесь означает понятный manifest+lock diff и зелёные проверки именно затронутых workspaces.
Что учитывать
`yarn up` обновляет совпавшие `dependencies` и `devDependencies`; `peerDependencies` этой командой не меняются. В monorepo команда project-wide: одинаковая зависимость может измениться сразу в нескольких workspaces. Флаг `-i` предлагает варианты обновления; glob-шаблоны имён следует экранировать от shell, а major-релизы проверять по changelog.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. yarn up). Пример и формулировки — редакция N1RO на 2026-09-23.