NPM:如果父目录的node_modules满足依赖关系,则不安装

con*_*cat 5 dependencies npm

为了节省空间,我在所有项目的公共父目录中安装了大型软件包。这些项目中的脚本可以引用此父目录中的模块(请参阅Node\ 的文档),但npm install在新克隆的项目中 -ing 会拉取所有内容,而不仅仅是项目在继承的项目之上需要的模块来自共同的父母。是否有任何选项可以npm install只下载需要的内容?

\n\n

最小示例:考虑以下文件结构。

\n\n
\xe2\x94\x9c projects\n\xe2\x94\x82   \xe2\x94\x9c package.json <- specifies a dependency on `some_module^1.0.0`\n\xe2\x94\x82   \xe2\x94\x9c node_modules\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94 some_module\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x94 ...\n\xe2\x94\x82   \xe2\x94\x94 some_project\n\xe2\x94\x82       \xe2\x94\x94 package.json <- also specifies a dependency on `some_module^1.0.0`\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果npm install运行在projects/some_project,它将下载some_module无条件下载。

\n\n

(注:这与npm dedupe,因为这只是一个目录层次结构:父目录项目不依赖于任何子文件夹。)

\n