pnpm store prune: как очистить кэш pnpm на Mac
Очистить кэш pnpm на Mac командой pnpm store prune — не то же самое, что очистить кэш npm: pnpm хранит каждый пакет один раз, в общем хранилище, к которому подключены ваши проекты, и при очистке удаляются только пакеты, которые ни одному проекту больше не нужны. Проекты от этого не страдают, а если какому-то из них удалённый пакет понадобится, pnpm скачает его заново. Ещё здесь — где лежит хранилище и что делать с папками хранилища от старых версий pnpm.

- Откройте MacWashing и выберите Сборка мусора в боковом меню.
- Нажмите Начать сканирование.
- Просмотрите находки и нажмите Очистить. Всё спорное остаётся без галочки.
Бесплатная пробная версия · macOS 14 и новее
Где pnpm хранит пакеты
pnpm хранит каждую версию пакета один раз, в своём хранилище, и подключает файлы в node_modules каждого проекта жёсткими ссылками. Поэтому проекты на pnpm занимают меньше места, чем на npm. На Mac хранилище лежит в ~/Library/pnpm/store, а эта команда показывает папку, которая используется сейчас:
pnpm store path
Ещё у pnpm есть кэш поменьше в ~/Library/Caches/pnpm: сведения о пакетах, кэш pnpm dlx и результаты некоторых проверок установки.
Как очистить кэш pnpm командой pnpm store prune
Эта команда удаляет пакеты, которыми не пользуется ни один проект, и показывает, сколько удалила. По документации pnpm она безвредна и никак не влияет на проекты:
pnpm store prune
Не запускайте её слишком часто. Если вы переключите проект на ветку со старыми зависимостями, pnpm придётся скачать их снова, и установка пройдёт медленнее.
Хранилища старых версий pnpm
Внутри ~/Library/pnpm/store у каждого формата хранилища своя папка, например v3, v10 или v11. pnpm store path показывает ту, которой пользуется ваш pnpm, и pnpm store prune чистит только её.
- В Finder выберите Переход › Переход к папке (Shift-Command-G), введите
~/Library/pnpm/storeи нажмите Return.

- Сравните папки с последней частью пути, который вывела
pnpm store path. - Переместите папки старых версий в Корзину, если ни один ваш проект больше не работает со старым pnpm.

Не удаляйте папку, которой pnpm пользуется сейчас. Её файлы связаны жёсткими ссылками с вашими проектами, поэтому места освободится намного меньше, чем показывает Finder, а следующая установка в каждом проекте скачает все пакеты заново.
Что останется после очистки
- Ваши проекты, их
node_modulesиpnpm-lock.yaml. - Все пакеты, которыми ещё пользуется хоть один проект на Mac.
- Сам pnpm и его настройки.
У npm и Yarn свой кэш: см. как очистить кэш npm и как очистить кэш Yarn.
А с MacWashing это в один клик

Сборка мусора в MacWashing находит кэш pnpm по названию в разделе «Кэш программ», рядом с кэшем npm, Yarn и других инструментов разработчика, и очищает его вместе с кэшем остальных программ.
Бесплатная пробная версия · macOS 14 и новее
Вопросы и ответы
Удалит ли MacWashing мои файлы при очистке?
Нет. Он удаляет только то, что может сопоставить с известной программой или известным видом мусора, и только там, где программы оставляют файлы; macOS и файлы Apple не затрагиваются. Всё спорное помечено и остаётся без галочки, пока вы не решите.
Что будет с открытыми программами?
Если файлы заняты открытой программой, MacWashing подождёт, пока она закроется, или закроет её по вашей команде, а после очистки откроет снова.
Это бесплатно?
Да, в пробном режиме: Сборка мусора и Деинсталлятор вместе освобождают до 25 ГБ, без аккаунта и карты.
Безопасно ли выполнять pnpm store prune?
Да. Она удаляет только пакеты, которыми не пользуется ни один проект. Если какой-то из них понадобится позже, pnpm скачает его снова.
Освободится ли место, если удалить проект?
Не сразу. Его пакеты остаются в хранилище, пока вы не выполните pnpm store prune. Запускайте её после удаления старых проектов или их node_modules.
Где кэш pnpm на Mac?
Пакеты лежат в ~/Library/pnpm/store, а кэш сведений о пакетах поменьше — в ~/Library/Caches/pnpm. Какое хранилище используется, покажет pnpm store path.