Merge branch 'spawn-minifier'
commit
b2c663925b
@ -0,0 +1,58 @@
|
||||
var uglifyjs = require('uglify-js'),
|
||||
less = require('less'),
|
||||
async = require('async'),
|
||||
fs = require('fs'),
|
||||
|
||||
Minifier = {
|
||||
js: {},
|
||||
css: {}
|
||||
};
|
||||
|
||||
/* Javascript */
|
||||
Minifier.js.minify = function (scripts, callback) {
|
||||
try {
|
||||
var minified = uglifyjs.minify(scripts);
|
||||
callback(minified.code);
|
||||
} catch(err) {
|
||||
process.send({
|
||||
action: 'error',
|
||||
error: err
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Minifier.js.concatenate = function(scripts, callback) {
|
||||
async.map(scripts, function(path, next) {
|
||||
fs.readFile(path, { encoding: 'utf-8' }, next);
|
||||
}, function(err, contents) {
|
||||
if (err) {
|
||||
process.send({
|
||||
action: 'error',
|
||||
error: err
|
||||
});
|
||||
} else {
|
||||
callback(contents.reduce(function(output, src) {
|
||||
return output.length ? output + ';\n' + src : src;
|
||||
}, ''));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
process.on('message', function(payload) {
|
||||
var executeCallback = function(data) {
|
||||
process.send({
|
||||
action: payload.action,
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
switch(payload.action) {
|
||||
case 'js.minify':
|
||||
Minifier.js.minify(payload.scripts, executeCallback);
|
||||
break;
|
||||
|
||||
case 'js.concatenate':
|
||||
Minifier.js.concatenate(payload.scripts, executeCallback);
|
||||
break;
|
||||
}
|
||||
})
|
Loading…
Reference in New Issue