Команда npm для удаления или удаления неиспользуемых пакетов в Node.js

Вам нужен XCode для создания приложений для iOS и, следовательно, компьютера Mac. Пожалуйста, смотрите это руководство для более подробной информации. https://cordova.apache.org/docs/en/latest/guide/platforms/ios/

379
задан 15.03.2018, 10:45

3 ответа

Запустите npm prune для сборки модулей, не перечисленных в package.json.

Из npm help prune:

Эта команда удаляет «посторонние» пакеты. Если указано имя пакета, удаляются только пакеты, соответствующие одному из предоставленных имен.

Посторонние пакеты - это пакеты, которые не перечислены в списке зависимостей родительского пакета.

Если указан флаг --production, эта команда удалит пакеты, указанные в ваших devDependencies.

636
ответ дан 04.10.2019, 13:45
  • 1
    Если бы я считал, что правильно, это удалило бы все подзависимости, с тех пор they' ре, не перечисленное в package.json. Это правильно? Так, следующее обновление или установка должны были бы переустановить их. – N13 19.04.2014, 04:14
  • 2
    Да, это удалит подзависимости. Подзависимости на самом деле хранятся в module' s собственный node_modules каталог, таким образом, они удалены с модулем. – Darkhogg 19.04.2014, 04:19
  • 3
    Позвольте мне дать пример. Я удаляю карму из моего package.json, но дача отпуска. Когда я буду работать npm prune, я ожидаю всю карму, включая ее собственное node_modules папка, содержащая ее зависимости, чтобы быть удаленным. Что относительно bower' s зависимости (дача-json, регистратор дачи, chmodr, fstream, шарик, и др.). Технически, те - not' t перечисленный в моем project' s package.json. Те удалены или нет? – N13 19.04.2014, 04:27
  • 4
    Нет, они не. Отметьте это they' ре не в Вашем собственном node_modules, но внутренний node_modules/bower/node_modules, " protected" node_modules/bower/package.json. Зависимости Вашего пакета и тот из Ваших package' s зависимости не смешаны . – Darkhogg 19.04.2014, 04:30

Если вы не беспокоитесь о том, чтобы сделать это пару минут, можно было бы снова rm -rf node_modules и npm install перестроить локальные модули.

282
ответ дан 04.10.2019, 13:45

Вы можете использовать npm-prune для удаления посторонних пакетов.

npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]

Эта команда удаляет «посторонние» пакеты. Если указано имя пакета, удаляются только пакеты, соответствующие одному из предоставленных имен.

Посторонние пакеты - это пакеты, которые не перечислены в списке зависимостей родительского пакета.

Если указан флаг - production или для переменной среды NODE_ENV установлено значение production , эта команда удалит пакеты, указанные в . ] devDependencies . Установка - без производства будет отменять NODE_ENV , установленный на производство .

Если используется флаг - всухую , то никаких изменений фактически не будет.

Если используется флаг - json , то изменения npm prune , сделанные (или сделанные с - всухую ), будут напечатаны как объект JSON.

При нормальной работе с включенными блокировками пакетов посторонние модули автоматически удаляются при установке модулей, и вам понадобится только эта команда с флагом - production . ​​

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

Алгоритм дедупликации обходит дерево, перемещая каждую зависимость как можно выше в дереве, даже если дубликаты не найдены. Это приведет как к плоскому, так и к дедуплицированному дереву.

10
ответ дан 04.10.2019, 13:45

Теги

Похожие вопросы