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'));