diff --git a/lib/server/minify.js b/lib/server/minify.js index 9337b01e..8d7a4f78 100644 --- a/lib/server/minify.js +++ b/lib/server/minify.js @@ -18,6 +18,7 @@ HTMLDIR = main.HTMLDIR, Util = main.util, Minify = main.require('minify'), + fs = require('fs'), IsChanged = main.ischanged, COULD_NOT_MINIFY = 'Could not minify without minify module\n' + @@ -28,20 +29,27 @@ INDEX : HTMLDIR + 'index.html', optimize: function(name, params) { + var minifyName, isChanged, isExist; + if (!Minify) { Util.log(COULD_NOT_MINIFY); Util.exec(params.callback); } else { - params.name = Minify.getName(name); + minifyName = Minify.getName(name), + + isChanged = Util.bind(IsChanged.isFileChanged, name), + isExist = Util.bind(fs.exists, minifyName); if (!this.MinFolder) this.MinFolder = Minify.MinFolder; - IsChanged.isFileChanged(name, function(changed) { - if (changed) + Util.asyncCall([isChanged, isExist], function(changed, exists) { + if (changed || !exists) { Minify.optimize(name, params); - else - Util.exec(params.callback, params); + } else + Util.exec(params.callback, { + name: minifyName + }); }); } },