如果这看起来很明显,我很抱歉,但我对Node很新,我无法找到解决方案。
目前,我正在开发一个项目,我们在存储库中有多个站点,并且都需要使用gulp构建。构建每个站点的过程基本相同,因此我们希望将gulpfile.js
移出每个站点的子目录,并将其移动到repo的根目录中,并将其符号链接到每个子目录中。这使我们无需维护多个gulp文件并需要重复的node_modules。
运行安装脚本以对gulp文件进行符号链接并在克隆之后运行npm install
,除了一个小问题外,它很有效;我们需要在每个站点的目录中引用package.json
文件,以获取其名称,版本等作为一些gulp任务的一部分。当我对gulpfile进行符号链接时,var pkg = require('./package.json')
总是解析为repo根目录下的package.json
,而不是从符号链接调用的位置(这是有道理的,但不是我需要的)。
如何为gulpfile维护此符号链接结构,但让require('./package.json')
解析为./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/
答案 0 :(得分:2)
默认情况下,Gulp将当前工作目录更改为Gulpfile所在的目录(在您的情况下是符号链接),因此以下内容应该有效:
var path = require('path');
var packageJson = require(path.join(process.cwd(), 'package.json'));