AskCleanAskClean

Как безопасно очистить кеш npm на Mac

Команда AskClean · Обновлено 2026-08-05

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

Квадратные пакеты проходят через круговое хранилище кеша, отмеченное щитом; папка проекта и блокнот лежат отдельно
Кеш npm хранит загрузки для повторного использования. Папка проекта, манифест, lock-файл и установленная папка node_modules относятся к другим данным.

Не путайте кеш 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 требуют отдельной диагностики.

  1. Выполните npm --version и npm config get cache, затем убедитесь, что показанный путь ведёт к кешу, а не к проекту.
  2. Измерьте этот точный путь командой du -sh и запишите объём свободного места в macOS, не меняя package.json и lock-файл.
  3. Остановите активные npm install, npm ci, npm exec и npm publish, затем выполните npm cache verify и сохраните сводку и ошибки.
  4. Запускайте npm cache clean --force, только если verify не освободил достаточно места или не устранил подтверждённую проблему кеша, а необходимые пакеты остаются доступными.
  5. Снова выполните 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, не перезаписывая существующий файл и не меняя разрешение зависимостей во время очистки.

Источники

Другие руководства по хранилищу для разработчиков