Эта история изначально была опубликована здесь.

При создании приложения Node.js вы устанавливаете различное количество модулей npm, папка package.json и node-modules увеличивается. Лучше всего свести к минимуму код, который вам нужно поддерживать, и это также верно для пакетов npm.

Очистите папку node_modules/

Есть два способа очистить папку node_modules:

  • Удали папку и переустанови
  • Используйте npm prune (начиная с npm версии 6)

Вручную удалить и переустановить

Вы можете удалить папку node_modules/, а затем переустановить зависимости из package.json.

Удалите все ваши пакеты (для пользователей Windows: вы можете использовать Git Bash для запуска этой команды):

rm -r node_modules/

Установить пакеты:

npm install

Удалите лишние пакеты с помощью NPM prune

Сводка: npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]

npm prune удаляет лишние пакеты. Если указано имя пакета, удаляются только пакеты, соответствующие одному из предоставленных имен. Посторонние пакеты — это те, которые присутствуют в папке node_modules, но не указаны в списке зависимостей какого-либо пакета.

Вы можете указать следующие флаги:

  • --production — если указан флаг --production или для переменной среды NODE_ENV установлено значение production, пакеты, указанные в вашем devDependencies, будут удалены.
  • --no-production отменяет настройку NODE_ENV на производство.
  • --dry-run указывает, что вы не хотите, чтобы npm вносил какие-либо изменения и что он должен сообщать только о том, что он сделал бы.
  • --json изменения, которые npm prune сделал или сделал бы с --dry-run, печатаются как объект JSON.

Лишние модули удаляются автоматически (обычные операции), поэтому эта команда нужна только с флагом --production. Однако не всегда работа идет нормально, как должно быть, случаются сбои и ошибки. Команда npm prune может помочь очистить полученный мусор от сбоев.

TL;DR

  • npm prune удаляет пакеты, не перечисленные в папке node_modules.
  • Флаг --dry-run полезен для просмотра того, что будет удалено.
  • Когда случаются сбои или ошибки, npm prune может помочь убрать любой возникающий мусор.

Спасибо за внимание. Если у вас есть вопросы, используйте функцию комментариев или отправьте мне сообщение @mariokandut .

Если вы хотите узнать больше о Node, ознакомьтесь с этими Учебными пособиями по Node.

Ссылки (и большое спасибо):

Обрезка НПМ