Как очистить папки node_modules с помощью npkill

Node.js — среда выполнения JavaScript вне браузера, популярная для разработки серверных и утилитарных приложений. Репозитории и проекты на Node часто содержат большую папку node_modules: зависимости могут занимать гигабайты и засорять диск. npkill помогает быстро выявить такие папки и удалить их безопасно и удобно.
Что такое npkill и как его использовать
npkill — это лёгкий пакет, доступный через npx, который сканирует файловую систему начиная с текущей директории и показывает список найденных папок node_modules с указанием занимаемого места. Перед использованием убедитесь, что на компьютере установлены Node.js и npm.
Запустить npkill просто — в терминале выполните:
npx npkillКоманда просканирует текущую директорию (и её поддиректории) в поисках node_modules и покажет интерактивный список. В интерфейсе используйте стрелки вверх/вниз для навигации, клавишу Space для удаления выбранной папки и Q или Ctrl+C для выхода из меню.
Важно: npkill удаляет только папки node_modules, а не package.json или другие файлы проекта.
Пошаговая методология безопасной очистки
- Убедитесь, что проект не активно выполняется (остановите dev-серверы, сборки, CI).
- Перейдите в корень ветки/директории, с которой хотите начать: cd /путь/к/директории.
- Запустите npx npkill и изучите список.
- Отметьте стрелками и нажмите Space для папок, которые хотите удалить.
- После удаления, при необходимости, восстановите зависимости командой npm install или pnpm install.
Короткая команда восстановления:
npm installКогда стоит и когда не стоит удалять node_modules
- Удалять стоит, если проект давно не развивался, занимает много места и его легко переустановить.
- Не удаляйте node_modules у активных проектов без резервной копии или если у вас есть незакоммиченные локальные изменения в node_modules (редко, но возможно).
Important: удаление node_modules необратимо — для возврата потребуется повторная загрузка пакетов из реестра (npm, yarn, pnpm).
Когда npkill может не помочь (ограничения)
- Моно-репозитории: в монорепозиториях с кастомной структурой npkill может пропустить нестандартные расположения зависимостей.
- Права доступа: если у вас недостаточно прав, npkill может не иметь возможности удалить некоторые каталоги — в этом случае используйте sudo или исправьте права, но делайте это осознанно.
- Кастомные менеджеры пакетов: некоторые менеджеры (например, нестандартные кеши) могут хранить зависимости в других местах — npkill ищет стандартные папки node_modules.
Альтернативные подходы
- Использовать специализированные команды очистки в CI/CD или скриптах (npm ci очищает и устанавливает зависимости заново).
- Удалять вручную через файловый менеджер или rm -rf node_modules (опасно, легко ошибиться с путём).
- Инструменты вроде depcheck помогают найти неиспользуемые зависимости, что уменьшит размер node_modules при удалении и переустановке.
Быстрые советы для разных ролей
- Для разработчика: перед удалением убедитесь, что у вас сохранены package.json и package-lock.json/yarn.lock; после удаления выполните npm install.
- Для менеджера проекта: включите очистку старых зависимостей в регулярный технический долг и документируйте политику хранения проектов.
- Для DevOps: автоматизируйте очистку артефактов на build-агентах и используйте квоты диска.
Чек-лист перед удалением
- Все изменения закоммичены или сохранены вне node_modules
- Проект остановлен и нет активных процессов, использующих зависимости
- Имеется доступ к интернету для повторной установки пакетов
- Есть резервные lock-файлы (package-lock.json / yarn.lock)
Откат и восстановление
Если вы случайно удалили node_modules:
- Перейдите в каталог проекта, содержащий package.json.
- Выполните:
npm installЭто заново загрузит и установит зависимости по lock-файлу. Если зависимости недоступны (частные репозитории), подготовьте доступы или кеши заранее.
Матрица рисков и смягчение
- Риск: потеря локальных модификаций в node_modules. Смягчение: проверять git и не вносить изменения в node_modules.
- Риск: удаление у активного проекта, прерывание работы. Смягчение: останавливать процессы перед удалением.
- Риск: проблемы с правами на удаление. Смягчение: исправлять права целенаправленно, избегать sudo без понимания последствий.
Мини-словарь терминов
- Node.js — среда выполнения JavaScript вне браузера.
- npm — пакетный менеджер для Node.js.
- node_modules — каталог с локальными зависимостями проекта.
- npx — утилита для выполнения пакетов npm без глобальной установки.
- npkill — инструмент для поиска и удаления папок node_modules.
Краткое резюме
npkill — удобный и быстрый способ освободить диск от тяжёлых папок node_modules, особенно в среде разработчика, где много старых проектов. Используйте его аккуратно, придерживаясь чек-листа и заранее планируя восстановление зависимостей.
Ключевые команды:
npx npkill
npm installNotes: если вы работаете в среде с ограниченными правами или в монорепозитории, протестируйте работу npkill на копии структуры, прежде чем запускать в продакшен-средах.
Похожие материалы
Настройка и удаление passkey в аккаунте Microsoft
Как сбросить пароль Apple ID — полное руководство
Сброс кода Screen Time на iPhone, iPad и Mac
Как сбросить забытый пароль в Ubuntu
Восстановление кода iPhone в iOS 17