Смотреть все файлы, сохраненные в папке и вносить изменения в другой файл с помощью gulp
Моим основным требованием является поиск изменений, внесенных в любой файл в js
,css
папку и обновите файл JSON.
Структура каталогов:
- HTML
- CSS
- x.css
- y.css
- JS
- a.js
- b.js
- c.js
- сервер
- versions.json
- CSS
versions.json
:
{
"css": {
"x.css": 1,
"y.css": 1,
},
"js": {
"a.js": 1,
"b.js": 1,
"c.js": 1,
},
}
Как я делаю какие-либо изменения в любом из файлов в js
а также css
папку, я хочу, чтобы gulp возвращал имя файла, который был сохранен и ищет ключ в versions.json
и увеличить его стоимость на 1
т.е. если я сохраню a.js
тогда следует обновлять только значение "a.js"
в versions.json
в 2
,
Вот что я сделал:
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/'));
});
Плагин: gulp-modify
Переменные dir
а также filename
должен иметь значение папки и имя измененного файла.
Любое улучшение по сравнению с этим или даже другим подходом хорошо