Перейти к содержанию

Инспектор файлов блокировок

Выведите все пакеты из файла блокировки с точной версией и указанием, являются ли они прямыми или транзитивными зависимостями.

Входные данные
Второй файл блокировки (опционально, для сравнения)
Выходные данные

Инспектор файлов блокировок

Вставьте файл package-lock.json, yarn.lock или pnpm-lock.yaml, и этот инструмент выведет все содержащиеся в нём пакеты с точно разрешённой версией и указанием на то, является ли пакет прямой зависимостью (той, что указана в манифесте вашего проекта) или транзитивной (подтянутой другим пакетом). Это быстрый способ проверить, что на самом деле попадает в node_modules, просмотреть pull request, затрагивающий файл блокировки, или выследить, откуда взялась неожиданная версия.

Выберите формат, соответствующий вашему файлу, затем отсортируйте список по алфавиту или по количеству других пакетов, которые от него зависят — это выявит транзитивные пакеты, на которые ваш проект полагается больше всего. Фильтр сужает вывод до одного имени или области видимости, например @babel/ или eslint. Включение отмечания дубликатов добавляет сводку по любому имени пакета, которое появляется в более чем одной версии — частая причина раздутого bundle. Выберите обычный список, таблицу с фиксированной шириной или CSV для электронных таблиц. Вставьте второй файл блокировки в дополнительное поле для сравнения двух версий одного проекта и точного просмотра того, какие пакеты были добавлены, удалены или обновлены.

Инструмент одинаково обрабатывает концы строк Windows и Unix. Для package-lock.json и pnpm-lock.yaml он читает собственный список зависимостей проекта, чтобы отличить реальные прямые зависимости от тех, которые просто поднялись на вершину node_modules; yarn.lock (классический v1) не содержит такой записи, поэтому его записи выводятся без этого различия. Очень большие файлы блокировок обрабатываются без зависания вкладки, а вывод свыше 10 МБ ограничивается сообщением с предложением отфильтровать или сравнить файл поменьше.

Всё работает локально в вашем браузере — ваш файл блокировки и описываемое им дерево зависимостей никогда не загружаются. Скопируйте результат, загрузите его как файл .txt или отправьте обратно в ввод для дальнейшей фильтрации.

FAQ

В чём разница между прямой и транзитивной зависимостью?
Прямая зависимость — это та, которую ваш файл package.json проекта перечисляет по имени. Транзитивная зависимость была подтянута только потому, что от неё зависит один из этих пакетов.
Почему yarn.lock показывает все пакеты одинаково, без прямых и транзитивных?
yarn.lock (классический v1) не записывает собственный список зависимостей проекта так, как это делают package-lock.json и pnpm-lock.yaml, поэтому в самом файле нет ничего, чтобы отличить пакет верхнего уровня от одного, подтянутого транзитивно.
Как работает сравнение двух файлов блокировок?
Вставьте старый файл блокировки в основное поле и новый во второе поле, используя один и тот же формат для обоих. Инструмент выведет каждый пакет, версия которого изменилась, плюс все, что было добавлено или удалено.
Что считается дубликатом?
Имя пакета, которое появляется более чем в одной версии в одном и том же файле блокировки — частая причина увеличенного размера bundle, когда две зависимости по-разному закрепляют несовместимую версию одной и той же библиотеки.
Мой файл блокировки загружается куда-нибудь?
Нет. Разбор происходит полностью в вашем браузере — файл никогда не покидает ваше устройство.