cloudcmd/lib/server/minify.js
2013-02-05 09:46:50 -05:00

96 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Обьект для сжатия скриптов и стилей */
(function(){
'use strict';
if(!global.cloudcmd)
return console.log(
'# minify.js' + '\n' +
'# -----------' + '\n' +
'# Module is part of Cloud Commander,' + '\n' +
'# used for work with minification.' + '\n' +
'# If you wont to see at work set minify' + '\n' +
'# parameters in config.json or environment' + '\n' +
'# and start cloudcmd.js' + '\n' +
'# http://coderaiser.github.com/cloudcmd' + '\n');
var main = global.cloudcmd.main,
DIR = main.DIR,
LIBDIR = main.LIBDIR,
HTMLDIR = main.HTMLDIR,
Util = main.util,
Minify = main.require('minify'),
IsChanged = main.ischanged,
COULD_NOT_MINIFY = 'Could not minify without minify module\n' +
'npm i minify';
exports.Minify = {
/* pathes to directories */
INDEX : HTMLDIR + 'index.html',
/* приватный переключатель минимизации */
allowed : {
css : true,
js : true,
html : true,
img : true
},
/* minimize even if file not changed */
forse : false,
/* функция разрешает или
* запрещает минимизировать
* css/js/html
* @pAllowed: - структура, в которой
* передаються параметры
* минификации, вида
* {js:true,css:true,html:false; img:true}
* img отвечает за перевод картинок в base64
* и сохранение их в css-файл
*/
setAllowed :(function(pAllowed){
if(pAllowed){
this.allowed = pAllowed;
}
}),
optimize: function(pName, pParams){
var lRet;
if(Minify){
pParams.name = Minify.getName(pName);
lRet = this.allowed.css || this.allowed.js || this.allowed.html;
if(!this.MinFolder)
this.MinFolder = Minify.MinFolder;
if(pParams && pParams.force)
Minify.optimize(pName, pParams);
else if(lRet)
IsChanged.isFileChanged(pName, function(pChanged){
if(pChanged)
Minify.optimize(pName, pParams);
else
main.sendFile(pParams);
});
}
else{
this.allowed = {
js : false,
css : false,
html : false
};
Util.log(COULD_NOT_MINIFY);
}
return lRet;
},
/* minification folder name */
MinFolder : '',
getName : Minify ? Minify.getName : Util.retFalse
};
})();