Смотреть все файлы, сохраненные в папке и вносить изменения в другой файл с помощью gulp

Моим основным требованием является поиск изменений, внесенных в любой файл в js,css папку и обновите файл JSON.


Структура каталогов:

  • HTML
    • CSS
      • x.css
      • y.css
    • JS
      • a.js
      • b.js
      • c.js
    • сервер
      • versions.json

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 должен иметь значение папки и имя измененного файла.

Любое улучшение по сравнению с этим или даже другим подходом хорошо

0 ответов

Другие вопросы по тегам