В целях экономии места я установил большие пакеты в общий родительский каталог для всех своих проектов. Скрипты в этих проектах могут ссылаться на модули в этом родительском каталоге (см. Это в документации Node ), но npm install
-ing в недавно клонированном проекте тянет все , а не только те, которые нужны проекту поверх тех, которые унаследованы от общего родителя. Есть ли варианты, чтобы npm install
загружал только то, что ему нужно?
Минимальный пример: рассмотрим структуру файла ниже.
├ projects
│ ├ package.json <- specifies a dependency on `some_module^1.0.0`
│ ├ node_modules
│ │ └ some_module
│ │ └ ...
│ └ some_project
│ └ package.json <- also specifies a dependency on `some_module^1.0.0`
Если npm install
запущен в projects/some_project
, он безоговорочно загрузит some_module
.
(Примечание: это не связано с npm dedupe
и дублированием модуля, которое оно решает, потому что это исключительно иерархия каталогов: проект родительского каталога не зависит ни от одной из подпапок.)