mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 18:55:26 +00:00
97 lines
3.5 KiB
JavaScript
97 lines
3.5 KiB
JavaScript
/* Обьект для сжатия скриптов и стилей по умолчанию - сжимаються */
|
|
|
|
(function(){
|
|
"use strict";
|
|
|
|
var main = global.cloudcmd.main,
|
|
DIR = main.DIR,
|
|
LIBDIR = main.LIBDIR,
|
|
HTMLDIR = main.HTMLDIR,
|
|
Util = main.util,
|
|
Minify = main.require('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 lResult;
|
|
if(Minify){
|
|
if(!pParams)
|
|
pParams = {};
|
|
|
|
if(this.force)
|
|
pParams.force = this.force;
|
|
|
|
if(!this.MinFolder)
|
|
this.MinFolder = Minify.MinFolder;
|
|
|
|
if(this._allowed.css || this._allowed.js || this._allowed.html){
|
|
main.srvrequire("ischanged").isFileChanged(pName, false, function(pChanged){
|
|
if(pChanged){
|
|
Minify.optimize(pName, pParams);
|
|
}else{
|
|
var lDot = pName.lastIndexOf('.'),
|
|
lExt = pName.substr(lDot);
|
|
|
|
pName = Minify.MinFolder + main.crypto.createHash('sha1')
|
|
.update(pName)
|
|
.digest('hex') + lExt;
|
|
|
|
console.log(pName);
|
|
|
|
pParams.callback = null;
|
|
pParams.name = pName;
|
|
if(pParams.request && pParams.response)
|
|
main.sendFile(pParams);
|
|
}
|
|
});
|
|
|
|
lResult = true;
|
|
}
|
|
}
|
|
else{
|
|
this._allowed = {
|
|
js : false,
|
|
css : false,
|
|
html : false
|
|
};
|
|
|
|
Util.log('Could not minify ' +
|
|
'without minify module\n' +
|
|
'npm i minify');
|
|
}
|
|
|
|
return lResult;
|
|
},
|
|
|
|
/* minification folder name */
|
|
MinFolder : ''
|
|
};
|
|
})();
|