diff --git a/cloudcmd.js b/cloudcmd.js index 4bd4292d..4e755b6e 100644 --- a/cloudcmd.js +++ b/cloudcmd.js @@ -17,7 +17,7 @@ files = require(DIR_SERVER + 'files'), AppCache = require(DIR_SERVER + 'appcache'), update = require(DIR_SERVER + 'update'), - Minify = require(DIR_SERVER + 'minify'), + minify = require(DIR_SERVER + 'minify'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), @@ -264,7 +264,7 @@ } function buildIndex(json, callback) { - var isMinify = Minify && Config.minify; + var isMinify = Config.minify; Util.exec.if(!isMinify, function(error, name) { fs.readFile(name || PATH_INDEX, 'utf8', function(error, template) { @@ -285,7 +285,8 @@ Util.exec(callback, error, data); }); }, function(callback) { - Minify.optimize(PATH_INDEX, { + minify(PATH_INDEX, { + log : true, returnName : true }, callback); }); diff --git a/lib/server.js b/lib/server.js index c2244ca4..1cdd6bc2 100644 --- a/lib/server.js +++ b/lib/server.js @@ -11,20 +11,21 @@ var main = global.cloudcmd.main, - DIR = './', - DIR_SERVER = DIR + 'server/', + DIR = __dirname + '/../', + DIR_LIB = DIR + 'lib/', + DIR_SERVER = DIR_LIB + 'server/', WIN = process.platform === 'WIN32', URL = require('url'), - Path = require('path'), + path = require('path'), http = require('http'), https = require('https'), - Util = require(DIR + 'util'), - CloudFunc = require(DIR + 'cloudfunc'), + Util = require(DIR_LIB + 'util'), + CloudFunc = require(DIR_LIB + 'cloudfunc'), - Minify = require(DIR_SERVER + 'minify'), + minify = require(DIR_SERVER + 'minify'), AppCache = require(DIR_SERVER + 'appcache'), Socket = require(DIR_SERVER + 'socket'), Console = require(DIR_SERVER + 'console'), @@ -127,9 +128,19 @@ return isMinify; } - }), - controller + + minify({ + dir : DIR, + log : true, + is : function() { + var isMinify = main.config.minify; + + return isMinify; + } + }), + + controller.middle(DIR) ], respondApp = Util.exec.with(respond, funcs); @@ -192,51 +203,34 @@ * @param req - запрос клиента (Request) * @param res - ответ сервера (Response) */ - function controller(req, res) { - var check, result, - config = main.config, - isMin = config.minify, + function controller(dir, req, res) { + var config = main.config, parsedUrl = URL.parse(req.url), query = parsedUrl.search || '', - path = ponse.getPathName(req), - name = path; + name = ponse.getPathName(req); if (!expressApp) - Util.log(req.method + ' ' + path + query); + Util.log(req.method + ' ' + name + query); + + name = path.join(dir, name); /* watching is file changed */ if (config.appcache) AppCache.watch(name); - name = Path.join(DIR, name); - check = checkExt(name); - result = isMin && check; - - Util.exec.if(!result, - function(error, nameMin) { - var sendName = nameMin || name; - - ponse.sendFile({ - name : sendName, - cache : config.cache, - gzip : true, - request : req, - response : res - }); - }, function(callback) { - Minify.optimize(name, { - returnName : true - }, callback); + ponse.sendFile({ + name : name, + cache : config.cache, + gzip : true, + request : req, + response : res }); + } - function checkExt(name) { - var ret; - - ret = Util.checkExt(name, ['js', 'css', 'html']); - - return ret; - } + controller.middle = function(dir) { + return controller.bind(null, dir); + }; exports.start = start; diff --git a/lib/server/join.js b/lib/server/join.js index 27319fd1..f79308d8 100644 --- a/lib/server/join.js +++ b/lib/server/join.js @@ -60,7 +60,7 @@ if (is) names = names.map(function(key) { - return namesObj[key]; + return namesObj[key] || key; }); read(names); @@ -132,7 +132,7 @@ } function minify(name, callback) { - Minify.optimize(name, {returnName:true}, function(error, name) { + Minify(name, {returnName:true}, function(error, name) { callback(null, name); }); } diff --git a/lib/server/minify.js b/lib/server/minify.js index 1116db44..71cb7d56 100644 --- a/lib/server/minify.js +++ b/lib/server/minify.js @@ -2,20 +2,23 @@ 'use strict'; var Util = require('../util'), - Minify = tryRequire('minify'); + minify = tryRequire('minify'); - exports.optimize = function(name, params, callback) { - Util.checkArgs(arguments, ['name', 'callback']); + module.exports = function(name, params, callback) { + var ret = middle; - if (!callback) - callback = params; - - if (Minify) - Minify.optimize(name, params, callback); - else + if (minify) + ret = minify(name, params, callback); + else if (callback) callback(); + + return ret; }; + function middle(req, res, next) { + next(); + } + function tryRequire(name) { var module; diff --git a/package.json b/package.json index e4c219c9..5d3e2370 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "glob": "~4.0.5", "http-auth": "2.1.x", "marked": "~0.3.2", - "minify": "~0.9.0", + "minify": "~1.0.0", "mkdirp": "~0.5.0", "morgan": "~1.2.x", "ncp": "~0.6.0",