use build module instead of forking

v1.18.x
barisusakli 8 years ago
parent 53fe432d8a
commit c32e6aaabb

@ -75,7 +75,7 @@ if (nconf.get('setup') || nconf.get('install')) {
} else if (nconf.get('reset')) { } else if (nconf.get('reset')) {
async.waterfall([ async.waterfall([
async.apply(require('./src/reset').reset), async.apply(require('./src/reset').reset),
async.apply(require('./build').build, true) async.apply(require('./build').buildAll)
], function (err) { ], function (err) {
process.exit(err ? 1 : 0); process.exit(err ? 1 : 0);
}); });
@ -180,12 +180,12 @@ function start() {
}); });
async.waterfall([ async.waterfall([
async.apply(db.init), async.apply(db.init),
function (next) { function (next) {
var meta = require('./src/meta'); var meta = require('./src/meta');
async.parallel([ async.parallel([
async.apply(db.checkCompatibility), async.apply(db.checkCompatibility),
async.apply(meta.configs.init), async.apply(meta.configs.init),
function (next) { function (next) {
if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) { if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) {
meta.dependencies.check(next); meta.dependencies.check(next);
@ -195,8 +195,8 @@ function start() {
} }
}, },
function (next) { function (next) {
require('./src/upgrade').check(next); require('./src/upgrade').check(next);
} }
], function (err) { ], function (err) {
next(err); next(err);
}); });
@ -257,7 +257,7 @@ function setup() {
async.series([ async.series([
async.apply(install.setup), async.apply(install.setup),
async.apply(loadConfig), async.apply(loadConfig),
async.apply(build.build, true) async.apply(build.buildAll)
], function (err, data) { ], function (err, data) {
// Disregard build step data // Disregard build step data
data = data[0]; data = data[0];
@ -302,7 +302,7 @@ function upgrade() {
async.apply(db.init), async.apply(db.init),
async.apply(meta.configs.init), async.apply(meta.configs.init),
async.apply(upgrade.upgrade), async.apply(upgrade.upgrade),
async.apply(build.build, true) async.apply(build.buildAll)
], function (err) { ], function (err) {
if (err) { if (err) {
winston.error(err.stack); winston.error(err.stack);

@ -5,13 +5,19 @@ var winston = require('winston');
var buildStart; var buildStart;
var valid = ['js', 'clientCSS', 'acpCSS', 'tpl'];
exports.buildAll = function (callback) {
exports.build(valid.join(','), callback);
};
exports.build = function build(targets, callback) { exports.build = function build(targets, callback) {
buildStart = Date.now(); buildStart = Date.now();
var db = require('./src/database'); var db = require('./src/database');
var meta = require('./src/meta'); var meta = require('./src/meta');
var plugins = require('./src/plugins'); var plugins = require('./src/plugins');
var valid = ['js', 'clientCSS', 'acpCSS', 'tpl'];
targets = (targets === true ? valid : targets.split(',').filter(function (target) { targets = (targets === true ? valid : targets.split(',').filter(function (target) {
return valid.indexOf(target) !== -1; return valid.indexOf(target) !== -1;

@ -3,7 +3,7 @@
define('admin/appearance/themes', ['translator'], function (translator) { define('admin/appearance/themes', ['translator'], function (translator) {
var Themes = {}; var Themes = {};
Themes.init = function () { Themes.init = function () {
$('#installed_themes').on('click', function (e) { $('#installed_themes').on('click', function (e) {
var target = $(e.target), var target = $(e.target),
@ -23,6 +23,7 @@ define('admin/appearance/themes', ['translator'], function (translator) {
if (err) { if (err) {
return app.alertError(err.message); return app.alertError(err.message);
} }
config['theme:id'] = themeId;
highlightSelectedTheme(themeId); highlightSelectedTheme(themeId);
app.alert({ app.alert({
@ -38,7 +39,7 @@ define('admin/appearance/themes', ['translator'], function (translator) {
}); });
} }
}); });
translator.translate('[[admin/appearance/themes:revert-confirm]]', function (revert) { translator.translate('[[admin/appearance/themes:revert-confirm]]', function (revert) {
$('#revert_theme').on('click', function () { $('#revert_theme').on('click', function () {
bootbox.confirm(revert, function (confirm) { bootbox.confirm(revert, function (confirm) {

@ -153,15 +153,13 @@ module.exports = function (Meta) {
}; };
function minify(source, paths, destination, callback) { function minify(source, paths, destination, callback) {
callback = callback || function () {};
less.render(source, { less.render(source, {
paths: paths paths: paths
}, function (err, lessOutput) { }, function (err, lessOutput) {
if (err) { if (err) {
winston.error('[meta/css] Could not minify LESS/CSS: ' + err.message); winston.error('[meta/css] Could not minify LESS/CSS: ' + err.message);
if (typeof callback === 'function') { return callback(err);
callback(err);
}
return;
} }
postcss([ autoprefixer, clean() ]).process(lessOutput.css).then(function (result) { postcss([ autoprefixer, clean() ]).process(lessOutput.css).then(function (result) {
@ -171,19 +169,14 @@ module.exports = function (Meta) {
Meta.css[destination] = result.css; Meta.css[destination] = result.css;
// Save the compiled CSS in public/ so things like nginx can serve it // Save the compiled CSS in public/ so things like nginx can serve it
if (nconf.get('isPrimary') === 'true' && (nconf.get('local-assets') === undefined || nconf.get('local-assets') !== false)) { if (nconf.get('local-assets') === undefined || nconf.get('local-assets') !== false) {
return Meta.css.commitToFile(destination, function () { return Meta.css.commitToFile(destination, function () {
if (typeof callback === 'function') { callback(null, result.css);
callback(null, result.css);
}
}); });
} }
if (typeof callback === 'function') { callback(null, result.css);
callback(null, result.css);
}
}); });
}); });
} }

@ -62,14 +62,11 @@ SocketAdmin.reload = function (socket, data, callback) {
}; };
SocketAdmin.restart = function (socket, data, callback) { SocketAdmin.restart = function (socket, data, callback) {
// Rebuild assets and reload NodeBB require('../../build').buildAll(function (err) {
var child_process = require('child_process'); if (err) {
var build_worker = child_process.fork('app.js', ['--build'], { return callback(err)
cwd: path.join(__dirname, '../../'), }
stdio: 'pipe'
});
build_worker.on('exit', function () {
events.log({ events.log({
type: 'build', type: 'build',
uid: socket.uid, uid: socket.uid,

Loading…
Cancel
Save