команда npm для удаления или обрезки неиспользуемых пакетов в узле.js
есть ли способ просто удалить все неиспользуемые (необъявленные) зависимости от узла.проект js (те, которые больше не определены в my package.json
.) Когда я обновляю свое приложение, мне нравится, чтобы пакеты без ссылок удалялись автоматически.
3 ответа:
выполнить
npm prune
чтобы снести модулей, не указанных вpackage.json
.С
npm help prune
:эта команда удаляет "лишние" пакеты. Если указано имя пакета, то удаляются только пакеты, соответствующие одному из указанных имен.
посторонние пакеты-это пакеты, которые не перечислены в списке зависимостей родительского пакета.
если
--production
флаг указан, эта команда удалит пакеты указано в ваших devDependencies.
Если вы не беспокоитесь о пару минут времени, чтобы сделать это, решение будет
rm -rf node_modules
иnpm install
снова перестроить локальные модули.
можно использовать npm-prune для удаления посторонних пакетов.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
эта команда удаляет "лишние" пакеты. Если указано имя пакета, то удаляются только пакеты, соответствующие одному из указанных имен.
посторонние пакеты-это пакеты, которые не перечислены в списке зависимостей родительского пакета.
если --производства флаг указан или переменной NODE_ENV переменная окружения имеет значение производства, эта команда удалит пакеты, указанные в вашем devDependencies. Установка -- no-production перечеркнет переменной NODE_ENV установлен до производства.
если -- dry-run флаг используется, то никаких изменений не производится.
если --json флаг используется тогда изменения npm prune сделал (или сделал бы с -- dry-run) печатаются как объект JSON.
при нормальной работе с включенными блокировками пакетов посторонние модули обрезаются автоматически при установке модулей, и вам понадобится только эта команда с --производства флаг.
если вы отключили пакет-блокировки, то посторонние модули не будут удалены, и это до вас, чтобы запустить npm prune время от времени, чтобы удалить их.
используйте npm-dedupe для уменьшения дублирование
npm dedupe npm ddp
выполняет поиск в локальном дереве пакетов и пытается упростить общую структуру, перемещая зависимости дальше вверх по дереву, где они могут быть более эффективно совместно использованы несколькими зависимыми пакетами.
например, рассмотрим этот график зависимостей:
a +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10
в этом случае npm-dedupe преобразует дерево в:
a +-- b +-- d `-- c@1.0.10
из-за иерархической природы поиска модуля узла, b и d будут оба получите их зависимость от одного пакета c на корневом уровне дерева.
алгоритм дедупликации ходит по дереву, перемещая каждую зависимость как можно выше в дереве, даже если дубликаты не найдены. Это повлечет за собой как плоский и дедуплицированный дерево.