skipping minification if the minFile is already up-to-date - issue

v1.18.x
Julian Lam
parent d7ea24e218
commit f39a7ada7c

@ -24,6 +24,7 @@
nconf.argv().env(); nconf.argv().env();
var fs = require('fs'), var fs = require('fs'),
async = require('async'),
winston = require('winston'), winston = require('winston'),
pkg = require('./package.json'), pkg = require('./package.json'),
path = require('path'), path = require('path'),
@ -85,17 +86,44 @@
'/src/jquery.form.js', '/src/jquery.form.js',
'/src/utils.js' '/src/utils.js'
], ],
minified; minified, mtime;
toMinify = toMinify.map(function (jsPath) { toMinify = toMinify.map(function (jsPath) {
return path.join(__dirname + '/public', jsPath); return path.join(__dirname + '/public', jsPath);
}); });
minified = uglifyjs.minify(toMinify); async.parallel({
fs.writeFile(path.join(__dirname, '/public/src', 'nodebb.min.js'), minified.code, function (err) { mtime: function (next) {
if (!err) { async.map(toMinify, fs.stat, function (err, stats) {
winston.info('Minified client-side libraries'); async.reduce(stats, 0, function (memo, item, callback) {
mtime = +new Date(item.mtime);
callback(null, mtime > memo ? mtime : memo);
}, next);
});
},
minFile: function (next) {
var minFile = path.join(__dirname, 'public/src/nodebb.min.js');
if (!fs.existsSync(minFile)) {
winston.warn('No minified client-side library found');
return next(null, 0);
}
fs.stat(minFile, function (err, stat) {
next(err, +new Date(stat.mtime));
});
}
}, function (err, results) {
if (results.minFile > results.mtime) {
winston.info('No changes to client-side libraries -- skipping minification');
} else { } else {
winston.error('Problem minifying client-side libraries, exiting.'); winston.info('Minifying client-side libraries');
process.exit(); minified = uglifyjs.minify(toMinify);
fs.writeFile(path.join(__dirname, '/public/src', 'nodebb.min.js'), minified.code, function (err) {
if (!err) {
winston.info('Minified client-side libraries');
} else {
winston.error('Problem minifying client-side libraries, exiting.');
process.exit();
}
});
} }
}); });

Loading…
Cancel
Save