2016-01-11 3 views
1

Например, я следующая структураС node.js, как управлять npm через модули?

main 
    -- doTask1 
     -- task1-1.js 
     -- task1-2.js 
    -- doTask2 
     -- task2-1.js 
     -- task2-2.js 

Если я бегу npm install <some package> в doTask1, новый каталог node_modules создается в doTask1.

Сейчас, в doTask2, мне нужно использовать тот же пакет, мне нужно снова запустить npm install <some package> в doTask2? Это создаст еще node_modules в doTask2, который является дубликатом. Каков правильный способ управления этим?

+0

Вы можете установить модуль в глобальном масштабе. – Shomz

+0

Не делайте то, что предлагает Шомз. Я уверен, что есть лучшее решение. – nbro

+0

Спасибо. Я знал, что смогу установить глобально, но я почувствовал что-то не так, поэтому я попросил убедиться. –

ответ

5

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

Таким образом, в вашей ситуации, просто установите в основной если вы хотите ту же версию того же пакета/модуля:

enter image description here

Наконец, вы можете установить необходимый пакет/модуль глобально - однако это обычно рекомендуется только для пакетов, которые вам известны из командной строки в любом месте (например, gulp, webpack и т. д.). В вашей ситуации для модулей, специфичных для приложения, лучше всего их хранить локально, установленный под каталогом node_modules.

Некоторые полезны NPM документация по установке NPM пакетов:

  • "Загрузка из node_modules папки" here
  • Немного старая, но соответствующая запись в блоге here
+0

Спасибо за подробное объяснение в хорошем формате. Приятно знать, что он будет двигаться вверх, ища папку node_modules. –

+0

@JoeHuang - нет проблем, спасибо за подтверждение ответа. Добавили ссылку внизу ответа на некоторые полезные документы, которые более подробно рассматриваются, если они заинтересованы. – arcseldon

+1

Обновлена ​​ссылка docs на блог, который на самом деле лучше описывает процесс. – arcseldon

Смежные вопросы