Гид по технологиям

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

5 min read Разработка Обновлено 07 Jan 2026
Очистка node_modules с помощью npkill
Очистка node_modules с помощью npkill

Корзина с символом переработки

Node.js — среда выполнения JavaScript вне браузера, часто используемая для серверных приложений, CLI-инструментов и утилит. Большая часть экосистемы строится вокруг пакетов NPM, а их зависимости и установленные пакеты обычно находятся в папке node_modules. Со временем такие папки могут занимать десятки гигабайт, особенно если у вас много проектов.

Этот материал объяснит, что такое npkill, как безопасно им пользоваться, какие есть альтернативы и какие предосторожности соблюдать.

Что такое npkill и зачем он нужен

npkill — это небольшая утилита (пакет NPM), которая сканирует файловую систему в поисках папок node_modules, показывает их размер и позволяет интерактивно удалять ненужные каталоги.

Ключевые факты:

  • Не требует установки, если запускать через npx.
  • Работает интерактивно в терминале: вверх/вниз — навигация, Space — удалить, Q или Ctrl+C — выход.
  • Удаляет только выбранные папки; сама утилита не меняет package.json.

Требования: Node.js и npm должны быть установлены на компьютере.

Пример запуска:

npx npkill

npkill, показывающий найденные папки node_modules в терминале

Пошаговая инструкция по использованию

  1. Откройте терминал в корне той папки, откуда хотите начать сканирование (обычно домашняя директория или папка с проектами).
  2. Выполните:
npx npkill
  1. Подождите, пока утилита просканирует дерево каталогов и отобразит список папок node_modules с их размерами и путями.
  2. Перемещайтесь по списку стрелками вверх/вниз. Выделите строку и нажмите Space, чтобы удалить соответствующую папку.
  3. Для выхода нажмите Q или Ctrl + C.

Альтернатива: если вы предпочитаете глобальную установку, можно установить npkill один раз командой npm i -g npkill и запускать npkill напрямую.

Когда удаление безопасно и когда нужно быть осторожным

Важно:

  • Удаление node_modules у активного проекта не повредит коду, но перед повторным запуском приложения нужно будет выполнить npm install или npm ci.
  • Если вы работаете с проектом, где изменения зависимостей фиксируются в lock-файлах (package-lock.json, yarn.lock), удаление безопасно — пакеты будут восстановлены при установке.
  • Не удаляйте папку в проектах, где есть незакоммиченные изменения, пока вы не уверены, что сможете восстановить окружение.

Критерии, чтобы считать удаление безопасным:

  • Проект закоммичен, либо есть резервная копия.
  • В репозитории есть lock-файл или CI‑скрипт, который автоматически восстанавливает зависимости.
  • Вы понимаете, что после удаления потребуется повторная установка зависимостей.

Мини‑методология: как очистить дисковое пространство поэтапно

  1. Сканируйте крупные директории (домашняя папка, папка проектов).
  2. Отсортируйте результаты по размеру и определите топ‑N кандидатур на удаление.
  3. Проверьте статус проектов: git status, наличие lock-файлов, CI.
  4. Удалите неактуальные node_modules через npkill.
  5. При необходимости восстановите зависимости в оставшихся проектах с помощью npm ci или npm install.

Пример команд для восстановления:

cd path/to/project
npm ci

Альтернативные подходы и инструменты

  • npm cache clean –force — очищает кэш npm, но не трогает node_modules.
  • Использовать специализированные скрипты, которые находят большие папки и выводят их в виде отчёта (например, du + sort на UNIX-системах).
  • Dockerd and container builds: держать зависимости внутри контейнеров, чтобы не засорять локальную файловую систему.

Когда npkill не подходит:

  • Если нужно тонкое управление версиями пакетов по проектам (npkill удаляет целиком). Тогда лучше использовать виртуальные среды или контейнеры.
  • В средах с ограниченным доступом/правами админа, где интерактивные утилиты не запускаются.

Откат и восстановление (инцидентный план)

Если вы случайно удалили node_modules в проекте, выполните:

  1. Перейдите в папку проекта: cd /path/to/project.
  2. Проверьте наличие package-lock.json или yarn.lock.
  3. Выполните npm ci (предпочтительно, если есть lock-файл) или npm install.
  4. Если зависимостей нет в lock-файле, используйте резервную копию репозитория: git checkout -- package.json package-lock.json.

Важно: файлы исходного кода не удаляются при удалении node_modules, поэтому код проекта остаётся в безопасности.

Чек-лист по ролям

  • Разработчик:

    • Убедиться, что все изменения закоммичены.
    • Проверить наличие lock-файла.
    • Запустить npx npkill и удалить только неактуальные проекты.
  • DevOps / Системный администратор:

    • Планировать периодические прогоны в общих директориях разработки.
    • Настроить политики резервного копирования.
  • Владелец проекта:

    • Проверить, что CI может восстановить окружение автоматически.
    • Сообщить команде о плановой очистке, если это влияет на ресурсы.

Примеры ошибок и когда npkill может ошибаться

  • Символические ссылки и монорепозитории: npkill может найти и предложить удалить папки, которые используются другими проектами через symlink. Проверьте структуру репозиториев перед удалением.
  • SSD с быстрым доступом: удаление может занять заметное время, но восстановление тоже потребует загрузки пакетов из сети.

Рекомендации по безопасности и приватности

  • npkill удаляет локальные файлы и не отправляет информацию в интернет.
  • Всё же перед массовыми удалениями лучше иметь резервную копию важных проектов.

Часто задаваемые вопросы

Нужно ли устанавливать npkill глобально?

Нет, достаточно npx npkill. Глобальная установка (npm i -g npkill) удобна, если вы используете утилиту часто.

Можно ли автоматизировать очистку?

Да, можно писать скрипты, которые запускают npkill в неинтерактивном режиме или использовать системные планировщики вместе с фильтрацией по размеру и времени модификации.

Как восстановить удалённые зависимости?

Перейдите в каталог проекта и выполните npm ci (при наличии lock-файла) или npm install.

Резюме

npkill — простой, безопасный и полезный инструмент для очистки node_modules, когда нужно быстро вернуть дисковое пространство. Запуск через npx минимизирует необходимость устанавливать дополнительные пакеты. Всегда проверяйте состояние репозиториев и резервные механизмы перед массовым удалением.

Краткие рекомендации:

  • Всегда проверяйте git‑статус перед удалением.
  • Предпочитайте npm ci для восстановления окружения.
  • Рассмотрите контейнеризацию или использование виртуальных сред для долгосрочного управления зависимостями.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство