Как безопасно очистить кеш npm на Mac
Команда AskClean · Обновлено 2026-08-05
Найдите активный кеш командой npm config get cache, измерьте этот путь с помощью du и до любого удаления выполните npm cache verify. Используйте npm cache clean --force, только если место действительно нужно и вы готовы заново загружать пакеты. Эта операция не удаляет node_modules, package.json или lock-файл проекта.

Не путайте кеш npm с зависимостями и файлами проекта
Кеш npm хранит загрузки, которые могут повторно использовать разные проекты. В macOS по умолчанию это ~/.npm, но конфигурация может изменить путь. node_modules — установленное дерево зависимостей проекта, а package.json и package-lock.json описывают его состояние и кешем не являются. npm-shrinkwrap.json тоже не кеш, однако npm v12 больше не читает его: если в старом проекте это единственный lock-файл, перед переустановкой переименуйте его в package-lock.json, не перезаписывая существующий файл.
Измерьте активный кеш и сначала проверьте его
Не исходите из того, что существующая ~/.npm обязательно является активным кешем. npm config get cache показывает путь для текущей конфигурации: измерьте именно его и запишите объём свободного места. npm cache verify проверяет индекс и целостность данных и удаляет невостребованное, сохраняя пригодные загрузки. Для обычного обслуживания этого часто достаточно; ERESOLVE, ошибки аутентификации, 404, проблемы с прокси, несовместимая версия Node.js, нативная сборка или postinstall требуют отдельной диагностики.
- Выполните npm --version и npm config get cache, затем убедитесь, что показанный путь ведёт к кешу, а не к проекту.
- Измерьте этот точный путь командой du -sh и запишите объём свободного места в macOS, не меняя package.json и lock-файл.
- Остановите активные npm install, npm ci, npm exec и npm publish, затем выполните npm cache verify и сохраните сводку и ошибки.
- Запускайте npm cache clean --force, только если verify не освободил достаточно места или не устранил подтверждённую проблему кеша, а необходимые пакеты остаются доступными.
- Снова выполните npm cache verify, измерьте тот же путь и проверьте рабочий проект с неизменным lock-файлом, сборкой и тестами.
Никогда не передавайте непроверенный путь команде rm -rf. Не совмещайте очистку кеша с удалением или пересозданием lock-файла: иначе одновременно изменятся две причины и сравнить результат не получится.
Запускайте npm cache clean --force только по веской причине
Выполняйте npm cache clean --force, только если измеренный кеш достаточно велик, место нужно сейчас, а пакеты можно получить снова. Следующая установка, в том числе npm ci, будет медленнее и может завершиться ошибкой без сети либо при недоступном приватном реестре, Git-хосте, прокси или снятом с публикации пакете. Применяйте --force только в этой команде и не сохраняйте его как постоянную настройку npm.
Проверьте результат, не меняя граф зависимостей
После очистки снова запросите путь через npm config get cache, измерьте его и сравните фактический объём свободного места в macOS. Проверьте один рабочий проект с неизменными package.json и lock-файлом, затем запустите его сборку и тесты. Если исходная ошибка вернулась, не повторяйте очистку: разберите сохранённое сообщение об ошибке, версии npm и Node.js, учётные данные и сетевую конфигурацию. AskClean распознаёт стандартную ~/.npm; нестандартный путь всё равно нужно проверять через npm.
Границы удаления и стоимость восстановления
Найдите и измерьте кеш загрузок, который действительно использует npm, сначала проверьте его и очищайте, только когда выигрыш места оправдывает повторные загрузки.
| Объект или действие | Где и чем проверить | Последствие |
|---|---|---|
| Не путайте кеш npm с зависимостями и файлами проекта | npm config get cache | Кеш npm хранит загрузки, которые могут повторно использовать разные проекты. В macOS по умолчанию это ~/.npm, но конфигурация может изменить путь. node_modules — установленное дерево зависимостей проекта, а package.json и package-lock.json описывают его состояние и кешем не являются. npm-shrinkwrap.json тоже не кеш, однако npm v12 больше не читает его: если в старом проекте это единственный lock-файл, перед переустановкой переименуйте его в package-lock.json, не перезаписывая существующий файл. |
| Измерьте активный кеш и сначала проверьте его | npm cache verify | Не исходите из того, что существующая ~/.npm обязательно является активным кешем. npm config get cache показывает путь для текущей конфигурации: измерьте именно его и запишите объём свободного места. npm cache verify проверяет индекс и целостность данных и удаляет невостребованное, сохраняя пригодные загрузки. Для обычного обслуживания этого часто достаточно; ERESOLVE, ошибки аутентификации, 404, проблемы с прокси, несовместимая версия Node.js, нативная сборка или postinstall требуют отдельной диагностики. |
| Запускайте npm cache clean --force только по веской причине | npm cache clean --force | Выполняйте npm cache clean --force, только если измеренный кеш достаточно велик, место нужно сейчас, а пакеты можно получить снова. Следующая установка, в том числе npm ci, будет медленнее и может завершиться ошибкой без сети либо при недоступном приватном реестре, Git-хосте, прокси или снятом с публикации пакете. Применяйте --force только в этой команде и не сохраняйте его как постоянную настройку npm. |
| Проверьте результат, не меняя граф зависимостей | установка + проверка офлайн-режима и приватного реестра | После очистки снова запросите путь через npm config get cache, измерьте его и сравните фактический объём свободного места в macOS. Проверьте один рабочий проект с неизменными package.json и lock-файлом, затем запустите его сборку и тесты. Если исходная ошибка вернулась, не повторяйте очистку: разберите сохранённое сообщение об ошибке, версии npm и Node.js, учётные данные и сетевую конфигурацию. AskClean распознаёт стандартную ~/.npm; нестандартный путь всё равно нужно проверять через npm. |
Частые вопросы
Безопасно ли выполнять npm cache clean --force на Mac?
Исходный код не удалится, если npm указывает на настоящий кеш, но повторно используемые загрузки исчезнут. Сначала измерьте и проверьте кеш, остановите процессы npm и предусмотрите сеть для следующих установок.
С чего начать: npm cache verify или npm cache clean?
Всегда начинайте с npm cache verify. Команда проверяет целостность и убирает ненужные данные, сохраняя исправное содержимое. clean --force нужен только ради измеренного выигрыша места или подтверждённой проблемы кеша.
Очистка кеша npm удалит package-lock.json?
Нет. package.json и package-lock.json — файлы проекта. npm v12 игнорирует npm-shrinkwrap.json: если это единственный lock-файл старого проекта, переименуйте его в package-lock.json, не перезаписывая существующий файл и не меняя разрешение зависимостей во время очистки.
Источники