2017-01-13 2 views
1

Недавно я начал работу с разработкой приложений Angular 2, и у меня возникла проблема. У меня есть несколько проектов, которые используют определенные модули узлов, и я установил эти модули с npm install в папку проекта. Но потом я начал думать: если у меня много проектов и установка модулей узлов для каждого из этих проектов, для этого требуется довольно много дискового пространства, и несколько модулей узлов устанавливаются несколько раз (в нескольких проектах). Поэтому я попытался найти способ установить узловые модули в какой-то общей папке, чтобы сделать эту папку какой-то библиотекой, которую используют мои проекты. Но есть еще одна проблема, которая приходит мне на ум: что, если разные проекты требуют разных версий одного и того же модуля? Как установить несколько версий модулей в одну папку?Место узла node_modules в стадии разработки

Возможно, я думаю совершенно не так, поэтому я прошу решения вашей проблемы. Есть ли общий способ обработки узлов на стадии разработки? У каждого проекта есть собственная папка модулей узлов или есть ли какая-то общая папка? Какой наиболее распространенный подход (если таковой имеется)?

Спасибо!

EDIT: нашел эту страницу в Nexus Repository docs - в ней говорится, что прокси-реестр npm «уменьшает дублирование загрузки», что я пытаюсь сделать. Мне уже удалось создать некоторый резидентный прокси-сервер npm, и я указал свой прокси-url в файле .npmrc. Когда я запускаю npm install, активы и компоненты добавляются в мой репозиторий прокси, но это не решает мою проблему. Модули узлов также устанавливаются в папку моего проекта. Я не совсем понимаю, как «уменьшить дублирующиеся загрузки» с помощью Nexus Repository. Может ли кто-нибудь объяснить мне, как это достичь?

+0

Хорошей практикой было бы иметь отдельную папку node_modules для каждого проекта. Если есть какие-либо пакеты, используемые на глобальном уровне без каких-либо изменений i-версий, то вы можете установить эти модули по всему миру и получить доступ к ним во всех ваших проектах. Если вам определенно нужно иметь общую папку node_modules, то yu может иметь ее, но вам нужно для настройки модулей, которые требуются для каждого проекта, с помощью пакета, такого как webpack или rollup –

ответ

2

Как правило, нет ничего, что мешало бы вам обмениваться узлами-узлами по вашим проектам. От узла documentation:

If the module identifier passed to require() is not a core module, 
and does not begin with '/', '../', or './', then Node.js starts at 
the parent directory of the current module, and adds /node_modules, 
and attempts to load the module from that location. Node will not 
append node_modules to a path already ending in node_modules. 
If it is not found there, then it moves to the parent directory, 
and so on, until the root of the file system is reached. 

Так что это дело писать правильные пути, когда вы ссылаетесь пакеты.

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