Просмотр состояния пакетов
Read-only команды, безопасно запускать в любой момент — ни одна из них ничего не меняет.
list
Таблица по всем найденным пакетам. По умолчанию — полная сводка: локальная версия, ветка, git-статус (clean/dirty), затегована ли текущая версия, есть ли у этого тега GitHub Release, совпадает ли версия с npm-реестром (или версия из реестра, если нет, либо «unpublished»), и сколько других локальных пакетов ссылаются на этот с уже устаревшим диапазоном версий (см. doctor).
polyrepo list [options]Проверки git/тега/релиза/npm выполняются по пакетам параллельно, но это всё ещё реальные сетевые запросы (тег, релиз и реестр — по три на пакет), так что полный list по многим пакетам занимает несколько секунд, а не выполняется мгновенно. Алиас: ls.
Реальный вывод (сокращено — реальный запуск покрывает все найденные пакеты):
Package Version Branch Git Tag Release npm Deps
------------------------ ------- ------ ----- ------- ------- --- ----
color-value-tools 1.1.12 master clean v1.1.12 ✓ ✓ ✓
css-magic-gradient 1.2.14 master clean v1.2.14 ✓ ✓ ✓
os-detect 2.1.5 master clean v2.1.5 ✓ ✓ ✓
…Опции
--quick
Пропустить проверки тега/релиза/npm/зависимостей — только версия, ветка и git-статус. Без сетевых запросов.
--path
Добавить колонку Path (сразу после Package) с расположением пакета на диске.
--output <path>
Дополнительно сохранить таблицу в файл — в дополнение к выводу в терминал, для отправки данных куда-то ещё.
--format <md|json|csv|html|txt>
Формат файла для --output. Если не указан — определяется по расширению файла (.json → json, .md/.markdown → markdown, .csv → csv, .html/.htm → html, всё остальное → обычный текст). В JSON ячейка, которая была просто галочкой ✓/✗, превращается в настоящий true/false; всё, что несёт больше информации, чем простое да/нет (отставшая версия из реестра, счётчик устаревших зависимостей, clean/dirty), остаётся текстом.
Пример:
polyrepo list --quick
polyrepo list --output packages.jsonoutdated
Одна таблица устаревших зависимостей по всем пакетам сразу, вместо того чтобы вручную гонять npm outdated в каждом репозитории.
polyrepo outdated [options]Выполняется по пакетам параллельно, с пустой строкой между блоками каждого пакета для читаемости и сводкой над таблицей (N dependencies outdated across M package(s), K of them major version behind). Колонка Latest раскрашена по тому, насколько версия отстала — красным для major, жёлтым для minor, приглушённым для patch.
Реальный вывод:
15 dependencies outdated across 2 package(s), 3 of them major version behind
Package Dependency Current Wanted Latest
----------------- ---------------------- ------- ------- -------
color-value-tools @types/node 26.4.1 25.9.5 26.4.1
color-value-tools typescript 7.0.2 5.9.3 7.0.2
color-value-tools vitest 2.1.9 2.1.9 5.0.0
os-detect @playwright/test 1.61.0 1.63.0 1.63.0
os-detect @types/node 25.5.0 25.9.5 26.4.1
os-detect @types/react 19.2.14 19.2.18 19.2.18
os-detect eslint 10.1.0 10.10.0 10.10.0
os-detect jest 30.3.0 30.5.1 30.5.1
os-detect jest-environment-jsdom 30.3.0 30.5.1 30.5.1
os-detect prettier 3.8.1 3.9.6 3.9.6
os-detect react 19.2.4 19.2.8 19.2.8
os-detect ts-jest 29.4.11 29.4.12 29.4.12
os-detect typescript 6.0.2 6.0.3 7.0.2
os-detect typescript-eslint 8.59.4 8.69.0 8.69.0
os-detect vue 3.5.31 3.5.42 3.5.42vitest у color-value-tools, а также @types/node/typescript у os-detect — все красные (отстают на major-версию), остальные жёлтые (minor) или приглушённые (patch, либо уже совпадают с Latest при более низком Wanted).
Опции
--packages <a,b,c>
Проверить только эти пакеты.
Пример:
polyrepo outdated --packages vue-toast-kit,os-detectaudit
Одна таблица уязвимостей npm по всем пакетам сразу, вместо того чтобы вручную гонять npm audit в каждом репозитории.
polyrepo audit [options]Выполняется по пакетам параллельно, с пустой строкой между блоками каждого пакета для читаемости (как у outdated), и сводкой над таблицей (N vulnerabilities across M package(s), K of them critical/high severity). Строки внутри каждого пакета отсортированы по критичности. Колонка Severity раскрашена — жирным красным для critical, красным для high, жёлтым для moderate, приглушённым для low/info. Fix available показывает, есть ли фикс, и называет пакет/версию, до которой он приведёт, если это семвер-major-бамп какой-то верхнеуровневой зависимости.
Реальный вывод:
9 vulnerabilities across 1 package(s), 6 of them critical/high severity
Package Dependency Severity Type Fix available
--------- --------------- -------- ---------- -------------
os-detect brace-expansion high transitive yes
os-detect browserslist high transitive yes
os-detect js-yaml high transitive yes
os-detect nanoid high transitive yes
os-detect postcss high transitive yes
os-detect ws high transitive yes
os-detect @humanfs/node moderate transitive yes
os-detect @babel/core low transitive yes
os-detect esbuild low transitive yesВсе девять здесь — транзитивные находки (из дерева dev-зависимостей) с уже доступным фиксом — polyrepo audit только показывает то, что находит npm audit, сам npm audit fix не запускает. Пакеты, по которым ничего не найдено, не добавляют строк; если не найдено вообще ничего — об этом так и говорится, вместо пустой таблицы.
Опции
--packages <a,b,c>
Проверить только эти пакеты.
Пример:
polyrepo audit
polyrepo audit --packages os-detectprs
Одна таблица всех открытых pull request'ов по всем пакетам.
polyrepo prs [options]Запускает gh pr list по каждому пакету параллельно — удобно после прерванного запуска bump, чтобы сразу увидеть, у каких пакетов ещё остался открытый PR, который нужно смёрджить руками.
Пример вывода — когда реально что-то открыто (одна оставшаяся bump-PR по os-detect, и две по vue-toast-kit — одна из них ещё в статусе draft):
Package PR Title Branch Status
------------- --- ----------------------------------------- ------------------ ------
os-detect #21 chore: bump version to 2.1.6 2.1.6-version-bump
vue-toast-kit #14 chore: bump version to 1.0.8 1.0.8-version-bump
vue-toast-kit #15 Add dark mode support for toast container dark-mode-support draftЗаголовки chore: bump version to ... — это те, что открывает сама команда bump; #15 здесь — посторонний PR, открытый вручную, всё ещё в draft — prs показывает оба одинаково, ей неважно, кто и что открыло PR.
Когда ничего не открыто, команда просто сообщает об этом, а не печатает пустую таблицу:
No open pull requests.Опции
--packages <a,b,c>
Проверить только эти пакеты.
Пример:
polyrepo prs