Моя текущая версия npm - 3.7.3. Раньше в мои модули узлов устанавливались только необходимые пакеты. Но сейчас они все сглажены, и когда я смотрю на модули узлов, видно более 100 папок. Я предпочитаю более старый способ, когда вы могли заходить в отдельные папки и видеть их зависимости. вот похожая ветка: Почему npm устанавливает много пакетов в "/ node_modules" вместо одного?

Я безуспешно пытался запустить npm uninstall.

1
Deke 18 Фев 2016 в 23:08

2 ответа

Лучший ответ

В принципе, вам не повезло ... NPM не предоставляет никаких параметров конфигурации по этому поводу. Он будет вкладывать зависимости, если это необходимо для разрешения конфликтов версий, но только в этом случае. Ваш единственный вариант - понизить рейтинг NPM (не рекомендуется). Однако, если вам просто нужно увидеть зависимости, вложенные в информационных целях, вы можете использовать npm ls. Он нарисует вам график.

См. Соответствующую проблему NPM для более подробного обсуждения: https://github.com/npm/npm/issues/ 9809

3
Kevin Burdett 18 Фев 2016 в 22:14

Теперь, когда LTS node js не включает NPMv2, я снова столкнулся с этой проблемой. Для тех из вас, кто также заметил, ссылка, упомянутая @KevinBurdett, также содержит некоторые ответы.

Вы можете принудительно перейти на более раннюю версию npm, используя сам npm (используя для этого sudo или аналогичный). Из https://github.com/npm/npm/issues/9809#issuecomment -179702479:

как root я просто делаю npm install -g 'npm@<3' в своей системе каждый раз, когда выходит новая версия Node; ваш пробег может отличаться, но это довольно тривиально для "понижения" :-)

Другой альтернативой является использование диспетчера версий узла (NVM): https://github.com/creationix/nvm. Ваш пробег может варьироваться в зависимости от личной конфигурации / предпочтений / платформы.

Тем не менее, npm 3 и проблема плоских деревьев зависимостей будут с нами отныне ... Вероятно, пора начать принимать это изменение.

Мое личное недовольство заключается в том, что это делает папку node_modules невероятно сложной для работы в среде IDE, особенно когда вам нужно посмотреть на реализацию ваших непосредственно зависимых модулей, не пробираясь сначала через сотни суб-подмодулей. которые для меня не имеют отношения. Похоже, что я не одинок в этом вопросе, когда читаешь комментарии в номере. Это только заставляет меня усомниться в жизнеспособности самого npm, когда такие изменения вносятся без правильного перехода со старых систем на новые. Для меня npm2 всегда будет королем.

0
cmroanirgo 11 Дек 2016 в 08:13