NPM: не устанавливать, если node_modules родительского каталога удовлетворяют зависимости - PullRequest
0 голосов
/ 31 октября 2018

В целях экономии места я установил большие пакеты в общий родительский каталог для всех своих проектов. Скрипты в этих проектах могут ссылаться на модули в этом родительском каталоге (см. Это в документации 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 и дублированием модуля, которое оно решает, потому что это исключительно иерархия каталогов: проект родительского каталога не зависит ни от одной из подпапок.)

...