Symlinking一个大文件,但得到path符号链接从

我很抱歉,如果这似乎是显而易见的,但我是比较新的节点,我找不到解决scheme。

目前我正在开发一个项目,我们在仓库中有多个站点,他们都需要build立一个大嘴。 构build每个站点的过程本质上是相同的,所以我们希望将gulpfile.js移出每个站点的子目录,并移动到repo的根目录,并将其链接到每个子目录中。 这使我们不需要维护多个gulpfiles并需要重复的node_modules。

运行安装脚本来符号链接gulp文件,并在克隆后运行npm install ,除了一个小问题之外,运行得非常好; 我们需要在每个站点的目录中引用package.json文件,以获取其名称,版本等作为一些吞噬任务的一部分。 当我符号链接gulp文件时, var pkg = require('./package.json')总是parsing到repo根目录下的package.json ,而不是从那里调用符号链接(这是有道理的,但不是我需要)。

我怎样才能保持gulpfile的符号链接结构,但require('./package.json')parsing./Site_1/package.json而不是./package.json

 . ├── Site_1 │  ├── README.md │  ├── config.yml │  ├── dist │  ├── gulpfile.js -> ../gulpfile.js │  ├── package.json │  └── src ├── Site_2 │  ├── README.md │  ├── config.yml │  ├── dist │  ├── gulpfile.js -> ../gulpfile.js │  ├── package.json │  └── src ├── package.json ├── gulpfile.js ├── node_modules/ 

默认情况下,Gulp将当前的工作目录更改为Gulpfile所在的目录(在你的情况下是一个符号链接),所以下面的代码应该可以工作:

 var path = require('path'); var packageJson = require(path.join(process.cwd(), 'package.json'));