#node.js #npm
#node.js #npm
Вопрос:
У меня возникли небольшие проблемы с npm. Тогда я создаю новую папку для своего приложения npm init
. Я хочу добавить gulp к своим зависимостям, поэтому я запускаю npm install --save-dev gulp
. Теперь, когда он создает папку node_module, я ожидал, что она будет содержать папку gulp. Но что он делает, так это устанавливает все пакеты, подобные этому:
Поскольку я начинаю изучать npm, мне интересно, является ли это нормальным поведением? Если да, есть ли способ организовать это?
Большое спасибо
Комментарии:
1. Знаете ли вы о
--save
,--save-dev
и-g
? Вы хотите установить gulp глобально?2. @iLuvLogix Я бы на самом деле не стал устанавливать что-либо глобально в эти дни. Усложняет управление версиями.
3. @AKX отсюда и мой вопрос 😉
4. На самом деле я читал об этом. Я понял, что
--save-dev
установите пакет подdevDependencies
, так что это то, что я хочу. Но я не понимаю, почемуnpm install
устанавливает все эти зависимости, поскольку я указываю gulp только в моем package.json devDependencies
Ответ №1:
Да, сглаженное node_modules
дерево является нормальным поведением в наши дни (уже несколько лет). Если вы действительно действительно этого не хотите, вы могли бы попробовать npm install --legacy-bundling
, но… пожалуйста, не делайте этого. 🙂
Вам не нужно изучать node_modules
или беспокоиться о его организации (если что-то не сломается), это сделано за вас npm
или yarn
(или каким бы менеджером пакетов вы ни пользовались).
Вы все еще можете найти вложенные модули здесь и там в случае, если они несовместимы друг с другом — например, если package1
зависит от tool
версии 1 и package2
зависит от tool
версии 2, вы можете получить
node_modules/
package1/
package2/
node_modules/
tool/ <- version 2
tool/ <- version 1
но все равно, все (обычно) просто работает.
Комментарии:
1. Спасибо за ответ! Просто кажется странным, что он добавляет все эти пакеты, когда вы указываете только одну devDependencies.
2. Добро пожаловать в разработку JavaScript в 2010-х годах … 🙂 Смотрите npm.anvaka.com/#/view/2d/gulp для визуализации вашего случая.
3. Вау, это круто! Итак, если я правильно понимаю этот инструмент, gulp зависит от всех этих пакетов, которые установлены в моей папке node_modules, вот почему они здесь?
4. Да, это именно тот случай.