Skip to content

Просмотр состояния пакетов

Read-only команды, безопасно запускать в любой момент — ни одна из них ничего не меняет.

list

Таблица по всем найденным пакетам. По умолчанию — полная сводка: локальная версия, ветка, git-статус (clean/dirty), затегована ли текущая версия, есть ли у этого тега GitHub Release, совпадает ли версия с npm-реестром (или версия из реестра, если нет, либо «unpublished»), и сколько других локальных пакетов ссылаются на этот с уже устаревшим диапазоном версий (см. doctor).

bash
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), остаётся текстом.

Пример:

bash
polyrepo list --quick
polyrepo list --output packages.json

outdated

Одна таблица устаревших зависимостей по всем пакетам сразу, вместо того чтобы вручную гонять npm outdated в каждом репозитории.

bash
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.42

vitest у color-value-tools, а также @types/node/typescript у os-detect — все красные (отстают на major-версию), остальные жёлтые (minor) или приглушённые (patch, либо уже совпадают с Latest при более низком Wanted).

Опции

--packages <a,b,c>

Проверить только эти пакеты.

Пример:

bash
polyrepo outdated --packages vue-toast-kit,os-detect

audit

Одна таблица уязвимостей npm по всем пакетам сразу, вместо того чтобы вручную гонять npm audit в каждом репозитории.

bash
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>

Проверить только эти пакеты.

Пример:

bash
polyrepo audit
polyrepo audit --packages os-detect

prs

Одна таблица всех открытых pull request'ов по всем пакетам.

bash
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>

Проверить только эти пакеты.

Пример:

bash
polyrepo prs