多个项目的集中共享gulp依赖项?

时间:2015-09-17 21:06:49

标签: dependencies gulp node-modules

是否可以为多个项目共享gulp依赖项,而不是在每个项目文件夹中都有它们(因为它是默认的)?

这就是我的目标(每个客户项目都具有相同的结构):

{{1}}

1 个答案:

答案 0 :(得分:1)

在Node.js中共享依赖关系很简单:给定需要查找的模块ID,require.resolve algorithmnode_modules directories中进行搜索,然后在目录树中执行该操作,直到解析模块:

  

如果传递给require()的模块标识符不是本机模块,并且不以'/''../''./'开头,那么Node.js将从当前模块的父目录,并添加/node_modules,并尝试从该位置加载模块。

     

如果在那里找不到它,那么它将移动到父目录,依此类推,直到到达文件系统的根目录。

回到你的问题,你基本上可以将项目放在一个共享node_modules子目录的目录中,来自任何客户项目目录的每个require调用都将从该共享{{{ 1}}(如果它存在且未在客户端目录中覆盖)。

node_modules

如果您还将shared ├── node_modules │ └── ... ├── shared_js ├── shared_scss ├── gulpfile.js | ├── client-project-1 │   ├── client_js │   ├── client_scss │   └── gulpfile.js | ├── client-project-2 ├── client-project-3 └── client-project-n 符号链接到shared_js,则客户项目将能够shared/node_modules/shared_js要求它们。

或者,您可以将共享依赖项globally安装到require('shared_js/...')$HOME/.node_modules,但不建议这样做。