diff --git a/cloudcmd.js b/cloudcmd.js
index 31783613..e204f201 100644
--- a/cloudcmd.js
+++ b/cloudcmd.js
@@ -23,6 +23,7 @@
* Win32 should be backslashes */
DIR = main.DIR;
+ console.log(main);
readConfig();
Server.start(Config, {
appcache : appCacheProcessing,
@@ -49,7 +50,7 @@
* минифицированый
*/
if(Minify._allowed.css){
- var lPath = '/' + srv.Minify.MinFolder.replace(DIR, '');
+ var lPath = '/' + Minify.MinFolder.replace(DIR, '');
lReplace_s = '';
lData = Util.removeStr(lData, lReplace_s)
.replace('/css/style.css', lPath + 'all.min.css');
@@ -99,7 +100,6 @@
lResetCSS = DIR + 'css/reset.css',
lIndex = DIR + 'html/index.html',
- lMinify = Server.CloudServer.Minify,
lCSSOptions = {
img : pAllowed.img,
merge : true
@@ -109,8 +109,8 @@
lOptimizeParams.push(LIBDIR + 'client.js');
if (pAllowed.html)
- //lOptimizeParams.push(lIndex);
- lOptimizeParams = lIndex;
+ lOptimizeParams.push(lIndex);
+ //lOptimizeParams = lIndex;
if (pAllowed.css) {
var lStyles = [{}, {}];
@@ -121,8 +121,10 @@
lOptimizeParams.push(lStyles[1]);
}
- //if (lOptimizeParams.length)
- //lMinify.optimize(lOptimizeParams);
+ if (lOptimizeParams.length)
+ Minify.optimize(lOptimizeParams, {
+ force:true
+ });
}
/**
diff --git a/json/config.json b/json/config.json
index cab6133b..69ce0eb2 100644
--- a/json/config.json
+++ b/json/config.json
@@ -1,12 +1,11 @@
{
"api_url" : "/api/v1",
"appcache" : false,
- "cache" : false,
"minification" : {
"js" : true,
- "css" : false,
- "html" : false,
- "img" : false
+ "css" : true,
+ "html" : true,
+ "img" : true
},
"logs" : false,
"show_keys_panel" : true,
diff --git a/lib/server.js b/lib/server.js
index 80f2ff23..e588f64c 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -75,15 +75,12 @@
DIR = main.Dir,
LIBDIR = main.LIBDIR,
SRVDIR = main.SRVDIR,
-
+
/* модуль для работы с путями*/
Path = main.path,
Fs = main.fs, /* модуль для работы с файловой системой*/
Querystring = main.querystring,
- /* Обьект для работы с кэшем */
- Cache = main.cache,
-
Minify = main.minify,
AppCache = main.appcache,
Socket = main.socket,
@@ -103,9 +100,6 @@
var lConfig = this.Config,
lMinifyAllowed = lConfig.minification;
- /* Переменная в которой храниться кэш*/
- Cache.setAllowed(lConfig.cache);
-
/* Change default parameters of
* js/css/html minification
*/
@@ -260,72 +254,28 @@
!Util.isContainStr(lPath, lNoJS_s) &&
!Util.strCmp(lPath, '/') &&
!Util.strCmp(lQuery, 'json') ) {
-
- /* если имена файлов проекта - загружаем их *
- * убираем слеш и читаем файл с текущец директории */
-
- /* добавляем текующий каталог к пути */
- var lName = '.' + lPath;
- Util.log('reading ' + lName);
-
- /* watching is file changed */
- if(lConfig.appcache)
- CloudServer.AppCache.watch(lName);
-
- /* сохраняем указатель на response и имя */
- CloudServer.Responses[lName] = pRes;
-
- /* saving status OK for current file */
- CloudServer.Statuses[lName] = OK;
-
- /* Берём значение из кэша
- * сжатый файл - если gzip-поддерживаеться браузером
- * не сжатый - в обратном случае
- */
- var lFileData = Cache.get(
- CloudServer.Gzip?(lName+'_gzip') : lName);
-
- Util.log(Path.basename(lName));
-
- /* object thet contains information
- * about the source of file data
- */
- var lReadFileFunc_f = CloudServer.getReadFileFunc(lName),
- /* если там что-то есть передаём данные в функцию readFile */
- lResult = lFileData;
-
- if(lResult){
- Util.log(lName + ' readed from cache');
-
- /* передаём данные с кэша,
- * если gzip включен - сжатые
- * в обратном случае - несжатые
- */
- lReadFileFunc_f(undefined, lFileData, {'cache': true});
- }
- /* if file not in one of caches
- * and minimizing setted then minimize it
- */
- else if(lName.indexOf('min') < 0 && Minify){
- var lMin_o = lConfig.minification,
-
- lCheck_f = function(pExt){
- return Util.checkExtension(lName,pExt);
- };
-
- lResult = (lCheck_f('js') && lMin_o.js) ||
- (lCheck_f('css') && lMin_o.css) ||
- (lCheck_f('html') && lMin_o.html);
-
- if(lResult)
- lResult = Minify.optimize(lName, {
- request : pReq,
- response : pRes,
- callback : function(pFileData){
- lReadFileFunc_f(undefined, pFileData, false);
- }
- });
- }
+
+ /* если имена файлов проекта - загружаем их *
+ * убираем слеш и читаем файл с текущец директории */
+
+ /* добавляем текующий каталог к пути */
+ var lName = '.' + lPath;
+ Util.log('reading ' + lName);
+
+ /* watching is file changed */
+ if(lConfig.appcache)
+ AppCache.watch(lName);
+
+ Util.log(Path.basename(lName));
+
+ var lExt = Util.getExtension(lName),
+ lResult = lExt === '.js' || lExt === '.css' || lExt === '.html';
+
+ if(lResult)
+ lResult = Minify.optimize(lName, {
+ request : pReq,
+ response : pRes
+ });
if(!lResult)
main.sendFile({
@@ -379,7 +329,6 @@
DirPath = lPath;
CloudServer.Responses[DirPath] = pRes;
-
CloudServer.Statuses[DirPath] = OK;
/* saving query of current file */
@@ -542,20 +491,9 @@
lList = '
' +
'';
- /* пробуем достать данные из кэша
- * с жатием или без, взависимости
- * от настроек
- */
- var lFileData = Cache.get(CloudServer.INDEX);
- /* если их нет там - вычитываем из файла*/
- if(!lFileData) {
- Fs.readFile(CloudServer.INDEX,
- CloudServer.indexReaded(lList));
- }else {
- var lReaded_f = CloudServer.indexReaded(lList);
- lReaded_f(false, lFileData);
- }
- }else{
+ Fs.readFile(CloudServer.INDEX, CloudServer.indexReaded(lList));
+
+ }else{
DirPath = DirPath.substr(DirPath, DirPath.lastIndexOf('/') );
var lQuyery = CloudServer.Queries[DirPath];
@@ -593,9 +531,6 @@
var lSrv = CloudServer,
lIndexName = lSrv.INDEX;
- /* и сохраняем в кэш */
- Cache.set(lIndexName, pIndex);
-
pIndex = pIndex.toString();
@@ -638,34 +573,18 @@
/*
* @pError - ошибка
* @pData - данные
- * @pFromCache_o - прочитано с файла,
* или из одного из кешей
- * Пример {cache: false}
*/
- var lReadFile = function(pError, pData, pFromCache_o){
+ var lReadFile = function(pError, pData){
var lSrv = CloudServer;
if (!pError){
Util.log('file ' + pName + ' readed');
- /* берём из кэша данные файла
- * если их нет в кэше -
- * сохраняем
- */
- if(pFromCache_o && !pFromCache_o.cache &&
- lSrv.Cache.isAllowed)
- lSrv.Cache.set(pName, pData);
-
- /* если кэш есть
- * сохраняем его в переменную
- * которая до этого будет пустая
- * по скольку мы будем вызывать этот метод
- * сами, ведь файл уже вычитан
- */
var lQuery = lSrv.Queries[pName],
lHeader = main.generateHeaders(pName, lSrv.Gzip, lQuery);
/* если браузер поддерживает gzip-сжатие - сжимаем данные*/
- if( lSrv.Gzip && !(pFromCache_o && pFromCache_o.cache) )
+ if( lSrv.Gzip )
/* сжимаем содержимое */
Zlib.gzip(pData,lSrv.getGzipDataFunc(lHeader, pName));
else
@@ -695,19 +614,8 @@
*/
CloudServer.getGzipDataFunc = function(pHeader, pName){
return function(error, pResult){
- if(!error){
- /* отправляем сжатые данные
- * вместе с заголовком
- * если установлена работа с кэшем
- * сохраняем сжатые данные
- */
- if(Cache.isAllowed){
- /* устанавливаем кєш */
- Util.log(pName+' gziped');
- Cache.set(pName+'_gzip', pResult);
- }
+ if(!error)
CloudServer.sendResponse(pHeader, pResult, pName);
- }
else{
Util.log(error);
CloudServer.sendResponse(pHeader, error);
diff --git a/lib/server/auth.js b/lib/server/auth.js
index d9132612..02b03f54 100644
--- a/lib/server/auth.js
+++ b/lib/server/auth.js
@@ -1,6 +1,6 @@
/* https://github.com/prose/gatekeeper */
(function(){
- "use strict";
+ 'use strict';
if(!global.cloudcmd)
return console.log(
diff --git a/lib/server/main.js b/lib/server/main.js
index 649aaffb..af9d5906 100644
--- a/lib/server/main.js
+++ b/lib/server/main.js
@@ -93,13 +93,13 @@
exports.rest = srvrequire('rest').api,
exports.socket = srvrequire('socket'),
exports.update = srvrequire('update'),
+ exports.ischanged = srvrequire('ischanged');
exports.minify = srvrequire('minify').Minify;
/*
* second initializing after all modules load, so global var is
* totally filled of all information that should know all modules
*/
global.cloudcmd.main = exports;
-
/**
* function do safe require of needed module
* @param {Strin} pSrc
diff --git a/lib/server/minify.js b/lib/server/minify.js
index 477c407c..2f117471 100644
--- a/lib/server/minify.js
+++ b/lib/server/minify.js
@@ -1,14 +1,29 @@
-/* Обьект для сжатия скриптов и стилей по умолчанию - сжимаються */
+/* Обьект для сжатия скриптов и стилей */
(function(){
- "use strict";
+ 'use strict';
- var main = global.cloudcmd.main,
- DIR = main.DIR,
- LIBDIR = main.LIBDIR,
- HTMLDIR = main.HTMLDIR,
- Util = main.util,
- Minify = main.require('minify');
+ 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 */
@@ -41,29 +56,32 @@
}),
optimize: function(pName, pParams){
- var lResult;
+ var lRet;
if(Minify){
if(!pParams)
pParams = {};
- if(this.force)
- pParams.force = this.force;
+ if( !Util.isObject(pName) ){
+ pParams.name = Minify.getName(pName);
+ pParams.calback = function(){
+ main.sendFile(pParams);
+ };
+ }
+
+ lRet = this._allowed.css || this._allowed.js || this._allowed.html;
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(pParams.force)
+ Minify.optimize(pName, pParams);
+ else if(lRet)
+ IsChanged.isFileChanged(pName, false, function(pChanged){
if(pChanged)
Minify.optimize(pName, pParams);
- else{
- pParams.name = Minify.getName(pName);
+ else
main.sendFile(pParams);
- }
});
-
- lResult = true;
- }
}
else{
this._allowed = {
@@ -72,12 +90,10 @@
html : false
};
- Util.log('Could not minify ' +
- 'without minify module\n' +
- 'npm i minify');
+ Util.log(COULD_NOT_MINIFY);
}
- return lResult;
+ return lRet;
},
/* minification folder name */
diff --git a/lib/util.js b/lib/util.js
index 259cfcfd..2f4c31b9 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -538,6 +538,21 @@ Util = exports || {};
return lRet;
};
+ /**
+ * function gets file extension
+ * @param pFileName
+ * @return Ext
+ */
+ Util.getExtension = function(pFileName){
+ var lRet, lDot;
+
+ if( Util.isString(pFileName) )
+ lDot = pFileName.lastIndexOf('.');
+ lRet = pFileName.substr(lDot);
+
+ return lRet;
+ };
+
/**
* get values from Object Array name properties
* or