From 299fcb99f182452e8d694eb7031b3199b7ee5210 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 16 Nov 2016 20:54:57 -0500 Subject: [PATCH] more progress on #5211 --- install/web.js | 10 --------- loader.js | 5 ----- src/meta/css.js | 50 +++++++++++++++++++++++++------------------ src/meta/templates.js | 9 ++------ src/webserver.js | 19 ++++++---------- 5 files changed, 38 insertions(+), 55 deletions(-) diff --git a/install/web.js b/install/web.js index 72284fea5f..b81fdeb545 100644 --- a/install/web.js +++ b/install/web.js @@ -124,11 +124,6 @@ function launch(req, res) { } function compileLess(callback) { - if ((nconf.get('from-file') || '').indexOf('less') !== -1) { - winston.info('LESS compilation skipped'); - return callback(false); - } - fs.readFile(path.join(__dirname, '../public/less/install.less'), function (err, style) { if (err) { return winston.error('Unable to read LESS install file: ', err); @@ -145,11 +140,6 @@ function compileLess(callback) { } function compileJS(callback) { - if ((nconf.get('from-file') || '').indexOf('js') !== -1) { - winston.info('Client-side JS compilation skipped'); - return callback(false); - } - var scriptPath = path.join(__dirname, '..'); var result = uglify.minify(scripts.map(function (script) { return path.join(scriptPath, script); diff --git a/loader.js b/loader.js index beb1d62691..6b388affcd 100644 --- a/loader.js +++ b/loader.js @@ -173,11 +173,6 @@ function forkWorker(index, isPrimary, isRestart) { process.env.isCluster = ports.length > 1 ? true : false; process.env.port = ports[index]; - // If primary node restarts, there's no need to mark it primary any longer (isPrimary used on startup only) - if (isPrimary && isRestart) { - args.push('--from-file', 'js,clientLess,acpLess,tpl'); - } - var worker = fork('app.js', args, { silent: silent, env: process.env diff --git a/src/meta/css.js b/src/meta/css.js index d33245f5bb..d664fdd5d2 100644 --- a/src/meta/css.js +++ b/src/meta/css.js @@ -81,25 +81,9 @@ module.exports = function (Meta) { acpSource += '\n@import (inline) "..' + path.sep + 'public/vendor/colorpicker/colorpicker.css";\n'; acpSource += '\n@import (inline) "..' + path.sep + 'public/vendor/jquery/css/smoothness/jquery-ui.css";'; - var fromFile = nconf.get('from-file') || ''; - async.series([ - function (next) { - if (fromFile.match('clientLess')) { - winston.info('[minifier] Compiling front-end LESS files skipped'); - return Meta.css.getFromFile(path.join(__dirname, '../../public/stylesheet.css'), 'cache', next); - } - - minify(source, paths, 'cache', next); - }, - function (next) { - if (fromFile.match('acpLess')) { - winston.info('[minifier] Compiling ACP LESS files skipped'); - return Meta.css.getFromFile(path.join(__dirname, '../../public/admin.css'), 'acpCache', next); - } - - minify(acpSource, paths, 'acpCache', next); - } + async.apply(minify, source, paths, 'cache'), + async.apply(minify, acpSource, paths, 'acpCache') ], function (err, minified) { if (err) { return callback(err); @@ -109,8 +93,8 @@ module.exports = function (Meta) { if (process.send) { process.send({ action: 'css-propagate', - cache: fromFile.match('clientLess') ? Meta.css.cache : minified[0], - acpCache: fromFile.match('acpLess') ? Meta.css.acpCache : minified[1] + cache: minified[0], + acpCache: minified[1] }); } @@ -122,6 +106,30 @@ module.exports = function (Meta) { }); }; + Meta.css.getFromFile = function(callback) { + async.series([ + async.apply(Meta.css.loadFile, path.join(__dirname, '../../public/stylesheet.css'), 'cache'), + async.apply(Meta.css.loadFile, path.join(__dirname, '../../public/admin.css'), 'acpCache') + ], function (err, minified) { + if (err) { + return callback(err); + } + + // Propagate to other workers + if (process.send) { + process.send({ + action: 'css-propagate', + cache: Meta.css.cache, + acpCache: Meta.css.acpCache + }); + } + + emitter.emit('meta:css.compiled'); + + callback(); + }); + }; + function getStyleSource(files, prefix, extension, callback) { var pluginDirectories = [], source = ''; @@ -166,7 +174,7 @@ module.exports = function (Meta) { }); }; - Meta.css.getFromFile = function (filePath, filename, callback) { + Meta.css.loadFile = function (filePath, filename, callback) { winston.verbose('[meta/css] Reading stylesheet ' + filePath.split('/').pop() + ' from file'); fs.readFile(filePath, function (err, file) { diff --git a/src/meta/templates.js b/src/meta/templates.js index d335709461..6d8f579034 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -17,14 +17,9 @@ var searchIndex = {}; Templates.compile = function (callback) { callback = callback || function () {}; - var fromFile = nconf.get('from-file') || ''; - - if (nconf.get('isPrimary') === 'false' || fromFile.match('tpl')) { - if (fromFile.match('tpl')) { - emitter.emit('templates:compiled'); - winston.info('[minifier] Compiling templates skipped'); - } + if (nconf.get('isPrimary') === 'false') { + emitter.emit('templates:compiled'); return callback(); } diff --git a/src/webserver.js b/src/webserver.js index bedcb07f02..37e242e889 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -84,16 +84,8 @@ module.exports.listen = function (callback) { function initializeNodeBB(callback) { winston.info('initializing NodeBB ...'); - - var skipJS; - var fromFile = nconf.get('from-file') || ''; var middleware = require('./middleware'); - if (fromFile.match('js')) { - winston.info('[minifier] Minifying client-side JS skipped'); - skipJS = true; - } - async.waterfall([ async.apply(meta.themes.setupPaths), function (next) { @@ -116,10 +108,13 @@ function initializeNodeBB(callback) { }, function (next) { async.series([ - async.apply(meta.templates.compile), - async.apply(!skipJS ? meta.js.minify : meta.js.getFromFile, 'nodebb.min.js'), - async.apply(!skipJS ? meta.js.minify : meta.js.getFromFile, 'acp.min.js'), - async.apply(meta.css.minify), + async.apply(function(next) { + emitter.emit('templates:compiled'); + setImmediate(next); + }), + async.apply(meta.js.getFromFile, 'nodebb.min.js'), + async.apply(meta.js.getFromFile, 'acp.min.js'), + async.apply(meta.css.getFromFile), async.apply(meta.sounds.init), async.apply(languages.init), async.apply(meta.blacklist.load)