我的基本要求是查找对js
,css
文件夹中的任何文件所做的更改并更新JSON文件。
目录结构:
versions.json
{
"css": {
"x.css": 1,
"y.css": 1,
},
"js": {
"a.js": 1,
"b.js": 1,
"c.js": 1,
},
}
当我对js
和css
文件夹中的任何文件进行任何更改时,我希望gulp返回已保存文件的名称并在{{1}中查找密钥}并将其值增加versions.json
,即如果我保存1
,那么它应该只将 a.js
中"a.js"
的值更新为versions.json
}}
以下是我所做的:
2
插件:gulp-modify
变量gulp.task('upgrade-file-version', function() {
gulp.src('server/versions.json')
.pipe(modify({
fileModifier: function(file, contents)
{
var fileContent = contents;
var parsedObj = JSON.parse(fileContent);
var dir = 'js'; // folder name
var filename = 'a.js'; // file name
var oldVersion = parsedObj[dir][filename];
var newVersion = oldVersion + 1;
parsedObj[dir][filename] = newVersion;
var newFileContent = JSON.stringify(parsedObj, null, 4);
return newFileContent;
}
}))
.pipe(gulp.dest('server/'));
});
和dir
需要包含已更改文件的文件夹和名称的值。
对此甚至另一种方法的任何改进都很好