|
|
@ -10,10 +10,9 @@ var file = require('../file');
|
|
|
|
var plugins = require('../plugins');
|
|
|
|
var plugins = require('../plugins');
|
|
|
|
var minifier = require('./minifier');
|
|
|
|
var minifier = require('./minifier');
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = function (Meta) {
|
|
|
|
var JS = module.exports;
|
|
|
|
Meta.js = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Meta.js.scripts = {
|
|
|
|
JS.scripts = {
|
|
|
|
base: [
|
|
|
|
base: [
|
|
|
|
'node_modules/jquery/dist/jquery.js',
|
|
|
|
'node_modules/jquery/dist/jquery.js',
|
|
|
|
'node_modules/socket.io-client/dist/socket.io.js',
|
|
|
|
'node_modules/socket.io-client/dist/socket.io.js',
|
|
|
@ -87,11 +86,11 @@ module.exports = function (Meta) {
|
|
|
|
'zxcvbn.js': 'node_modules/zxcvbn/dist/zxcvbn.js',
|
|
|
|
'zxcvbn.js': 'node_modules/zxcvbn/dist/zxcvbn.js',
|
|
|
|
ace: 'node_modules/ace-builds/src-min',
|
|
|
|
ace: 'node_modules/ace-builds/src-min',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
var basePath = path.resolve(__dirname, '../..');
|
|
|
|
var basePath = path.resolve(__dirname, '../..');
|
|
|
|
|
|
|
|
|
|
|
|
function minifyModules(modules, fork, callback) {
|
|
|
|
function minifyModules(modules, fork, callback) {
|
|
|
|
var moduleDirs = modules.reduce(function (prev, mod) {
|
|
|
|
var moduleDirs = modules.reduce(function (prev, mod) {
|
|
|
|
var dir = path.resolve(path.dirname(mod.destPath));
|
|
|
|
var dir = path.resolve(path.dirname(mod.destPath));
|
|
|
|
if (prev.indexOf(dir) === -1) {
|
|
|
|
if (prev.indexOf(dir) === -1) {
|
|
|
@ -126,10 +125,10 @@ module.exports = function (Meta) {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
], callback);
|
|
|
|
], callback);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function linkModules(callback) {
|
|
|
|
function linkModules(callback) {
|
|
|
|
var modules = Meta.js.scripts.modules;
|
|
|
|
var modules = JS.scripts.modules;
|
|
|
|
|
|
|
|
|
|
|
|
async.eachLimit(Object.keys(modules), 1000, function (relPath, next) {
|
|
|
|
async.eachLimit(Object.keys(modules), 1000, function (relPath, next) {
|
|
|
|
var srcPath = path.join(__dirname, '../../', modules[relPath]);
|
|
|
|
var srcPath = path.join(__dirname, '../../', modules[relPath]);
|
|
|
@ -165,14 +164,14 @@ module.exports = function (Meta) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}, callback);
|
|
|
|
}, callback);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var moduleDirs = ['modules', 'admin', 'client'];
|
|
|
|
var moduleDirs = ['modules', 'admin', 'client'];
|
|
|
|
|
|
|
|
|
|
|
|
function getModuleList(callback) {
|
|
|
|
function getModuleList(callback) {
|
|
|
|
var modules = Object.keys(Meta.js.scripts.modules).map(function (relPath) {
|
|
|
|
var modules = Object.keys(JS.scripts.modules).map(function (relPath) {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
srcPath: path.join(__dirname, '../../', Meta.js.scripts.modules[relPath]),
|
|
|
|
srcPath: path.join(__dirname, '../../', JS.scripts.modules[relPath]),
|
|
|
|
destPath: path.join(__dirname, '../../build/public/src/modules', relPath),
|
|
|
|
destPath: path.join(__dirname, '../../build/public/src/modules', relPath),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -225,9 +224,9 @@ module.exports = function (Meta) {
|
|
|
|
}, function (err) {
|
|
|
|
}, function (err) {
|
|
|
|
callback(err, moduleFiles);
|
|
|
|
callback(err, moduleFiles);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function clearModules(callback) {
|
|
|
|
function clearModules(callback) {
|
|
|
|
var builtPaths = moduleDirs.map(function (p) {
|
|
|
|
var builtPaths = moduleDirs.map(function (p) {
|
|
|
|
return path.join(__dirname, '../../build/public/src', p);
|
|
|
|
return path.join(__dirname, '../../build/public/src', p);
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -236,9 +235,9 @@ module.exports = function (Meta) {
|
|
|
|
}, function (err) {
|
|
|
|
}, function (err) {
|
|
|
|
callback(err);
|
|
|
|
callback(err);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Meta.js.buildModules = function (fork, callback) {
|
|
|
|
JS.buildModules = function (fork, callback) {
|
|
|
|
async.waterfall([
|
|
|
|
async.waterfall([
|
|
|
|
clearModules,
|
|
|
|
clearModules,
|
|
|
|
function (next) {
|
|
|
|
function (next) {
|
|
|
@ -252,9 +251,9 @@ module.exports = function (Meta) {
|
|
|
|
minifyModules(modules, fork, next);
|
|
|
|
minifyModules(modules, fork, next);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
], callback);
|
|
|
|
], callback);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Meta.js.linkStatics = function (callback) {
|
|
|
|
JS.linkStatics = function (callback) {
|
|
|
|
rimraf(path.join(__dirname, '../../build/public/plugins'), function (err) {
|
|
|
|
rimraf(path.join(__dirname, '../../build/public/plugins'), function (err) {
|
|
|
|
if (err) {
|
|
|
|
if (err) {
|
|
|
|
return callback(err);
|
|
|
|
return callback(err);
|
|
|
@ -272,9 +271,9 @@ module.exports = function (Meta) {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}, callback);
|
|
|
|
}, callback);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
function getBundleScriptList(target, callback) {
|
|
|
|
function getBundleScriptList(target, callback) {
|
|
|
|
var pluginDirectories = [];
|
|
|
|
var pluginDirectories = [];
|
|
|
|
|
|
|
|
|
|
|
|
if (target === 'admin') {
|
|
|
|
if (target === 'admin') {
|
|
|
@ -303,10 +302,10 @@ module.exports = function (Meta) {
|
|
|
|
return callback(err);
|
|
|
|
return callback(err);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var scripts = Meta.js.scripts.base.concat(pluginScripts);
|
|
|
|
var scripts = JS.scripts.base.concat(pluginScripts);
|
|
|
|
|
|
|
|
|
|
|
|
if (target === 'client' && global.env !== 'development') {
|
|
|
|
if (target === 'client' && global.env !== 'development') {
|
|
|
|
scripts = scripts.concat(Meta.js.scripts.rjs);
|
|
|
|
scripts = scripts.concat(JS.scripts.rjs);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
scripts = scripts.map(function (script) {
|
|
|
|
scripts = scripts.map(function (script) {
|
|
|
@ -319,9 +318,9 @@ module.exports = function (Meta) {
|
|
|
|
|
|
|
|
|
|
|
|
callback(null, scripts);
|
|
|
|
callback(null, scripts);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Meta.js.buildBundle = function (target, fork, callback) {
|
|
|
|
JS.buildBundle = function (target, fork, callback) {
|
|
|
|
var fileNames = {
|
|
|
|
var fileNames = {
|
|
|
|
client: 'nodebb.min.js',
|
|
|
|
client: 'nodebb.min.js',
|
|
|
|
admin: 'acp.min.js',
|
|
|
|
admin: 'acp.min.js',
|
|
|
@ -342,9 +341,8 @@ module.exports = function (Meta) {
|
|
|
|
}, minify, fork, next);
|
|
|
|
}, minify, fork, next);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
], callback);
|
|
|
|
], callback);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Meta.js.killMinifier = function () {
|
|
|
|
JS.killMinifier = function () {
|
|
|
|
minifier.killAll();
|
|
|
|
minifier.killAll();
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|