为了节省空间,我在所有项目的公共父目录中安装了大软件包。这些项目中的脚本可以引用该父目录中的模块(请参见Node's documentation中的模块),但是npm install
-在一个新克隆的项目中提取了一切,而不仅仅是在从公共父级继承的项目之上,还需要项目需要的项目。 是否有任何选项可以使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
及其解决的模块重复无关,因为这仅是目录层次结构:父目录项目不依赖于任何子文件夹。)