Эта история изначально была опубликована здесь.
При создании приложения 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.