]> BookStack Code Mirror - bookstack/blob - gulpfile.js
Implemented custom asset versioning to make creating releases easier
[bookstack] / gulpfile.js
1 var elixir = require('laravel-elixir');
2
3 // Custom extensions
4 var gulp = require('gulp');
5 var Task = elixir.Task;
6 var fs = require('fs');
7
8 elixir.extend('queryVersion', function(inputFiles) {
9      new Task('queryVersion', function() {
10          var manifestObject = {};
11          var uidString = Date.now().toString(16).slice(4);
12          for (var i = 0; i < inputFiles.length; i++) {
13              var file = inputFiles[i];
14              manifestObject[file] = file + '?version=' + uidString;
15          }
16          var fileContents = JSON.stringify(manifestObject, null, 1);
17          fs.writeFileSync('public/build/manifest.json', fileContents);
18      }).watch(['./public/css/*.css', './public/js/*.js']);
19 });
20
21 elixir(function(mix) {
22     mix.sass('styles.scss')
23         .sass('print-styles.scss')
24         .browserify(['jquery-extensions.js', 'global.js'], 'public/js/common.js')
25         .queryVersion(['css/styles.css', 'css/print-styles.css', 'js/common.js']);
26 });