mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-21 18:49:02 +00:00
96 lines
3.6 KiB
JavaScript
96 lines
3.6 KiB
JavaScript
/* Обьект для сжатия скриптов и стилей */
|
||
|
||
(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
|
||
};
|
||
|
||
})();
|