pnpm doctor
Додано у: v11.14.0
Виконує діагностику встановлення pnpm та середовища, в якому він працює.
pnpm doctor [--offline] [--benchmark] [--json]
Кожна перевірка містить вказівки щодо усунення виявлених проблем, і при невдачі хоча б однієї перевірки команда завершується з кодом, відмінним від нуля. Попередження не призводять до збою виконання команди.
✓ Versions: pnpm 11.14.0, Node.js 22.20.0
✓ Install method: pnpm
✓ Global bin directory: /Users/example/Library/pnpm/bin
✓ Cache directory: /Users/example/Library/Caches/pnpm
✓ Store directory: /Users/example/Library/pnpm/store/v10
✓ Filesystem: available: reflink, hardlink, symlink
✓ Registry connectivity: https://registry.npmjs.org/ (128ms)
✓ Install smoke test: offline "file:" install linked its dependency
All checks passed
Перевірки#
Версії#
Повідомляє про запущені версії pnpm і Node.js.
Метод встановлення#
Повідомляє, як було встановлено pnpm, як пакунок pnpm чи автономну збірку @pnpm/exe, та попереджає, коли pnpm запускається за допомогою Corepack, який самостійно керує версією pnpm і робить функцію pnpm self-update недоступною.
Глобальна тека bin#
Перевіряє, чи тека, у яку pnpm підключає глобальні виконувані файли, знаходиться у PATH та чи вона має права на запис. Якщо її немає в PATH, щоб виправити це, потрібно виконати команду pnpm setup.
Тека кешу#
Перевіряється, що тека кешу має встановлені права на запис.
Тека сховща#
Перевіряється, що тека сховища має встановлені права на запис. Перевірка пропускається, якщо теку сховища не налаштовано.
Файлова система#
Перевіряє, які стратегії створення посилань застосовуються залежно від тому сховища: reflink (копіювання при записі), hardlink та symlink. Саме це визначає, як пакунки потрапляють у node_modules і наскільки швидко відбувається встановлення — reflink або hardlink практично не вимагають ресурсів, на відміну від звичайного копіювання.
Якщо не працює ані reflink, ані hardlink, система попереджає, що під час встановлення буде використано копіювання, і пропонує розмістити сховище в тій самій файловій системі, що й ваші проєкти.
Звʼязок із реєстром#
Виконує тест на доступність налаштованого запису реєстру з тайм-аутом у 15 секунд і повідомляє час проходження сигналу туди й назад. Операція завершується невдачею, якщо доступ до реєстру неможливий або він повертає код помилки, що зазвичай вказує на проблеми з налаштуваннями мережі, проксі-сервера або автентифікації.
Оминається з --offline.
Тест перевірки встановлення#
Встановлює одноразовий пакунок як залежність file: повністю в автономному режимі у тимчасову теку. Це дозволяє перевірити шлях (resolve, store та link) від початку до кінця і підтвердити, що запущений бінарний файл дійсно може виконати інсталяцію.
Ця перевірка за своєю суттю завжди виконується в автономному режимі, тому --offline її не ігнорує.
Параметри#
--offline#
Оминати перевірки, для яких потрібен доступ до мережі.
--benchmark#
Також вимірювати час виконання перевірок файлової системи та інсталяції, вказуючи тривалість поруч із кожним результатом.
--json#
Виводити результати в JSON. Результатом є об’єкт з одним масивом checks, кожен елемент якого містить title, status (pass, warn або fail), а також, за бажанням, detail, fix і durationMs.
{
"checks": [
{
"title": "Filesystem",
"status": "pass",
"detail": "available: reflink, hardlink, symlink",
"durationMs": 3
}
]
}