mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-16 21:41:58 +02:00
updated dependency check logic to better handle missing dependencies
This commit is contained in:
4
app.js
4
app.js
@@ -207,6 +207,10 @@ function start() {
|
||||
winston.warn('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:');
|
||||
winston.warn(' ./nodebb upgrade');
|
||||
break;
|
||||
case 'dependencies-missing':
|
||||
winston.warn('One or more of NodeBB\'s dependent packages are missing. Please run the following command to update them:');
|
||||
winston.warn(' ./nodebb upgrade');
|
||||
break;
|
||||
default:
|
||||
if (err.stacktrace !== false) {
|
||||
winston.error(err.stack);
|
||||
|
||||
@@ -12,7 +12,9 @@ module.exports = function(Meta) {
|
||||
Meta.dependencies = {};
|
||||
|
||||
Meta.dependencies.check = function(callback) {
|
||||
var modules = Object.keys(pkg.dependencies);
|
||||
var modules = Object.keys(pkg.dependencies),
|
||||
depsOutdated = false,
|
||||
depsMissing = false;
|
||||
winston.verbose('Checking dependencies for outdated modules');
|
||||
|
||||
async.every(modules, function(module, next) {
|
||||
@@ -33,15 +35,23 @@ module.exports = function(Meta) {
|
||||
next(true);
|
||||
} else {
|
||||
process.stdout.write('[' + 'outdated'.yellow + '] ' + module.bold + ' installed v' + pkgData.version + ', package.json requires ' + pkg.dependencies[module] + '\n');
|
||||
next(false);
|
||||
depsOutdated = true;
|
||||
next(true);
|
||||
}
|
||||
} catch(e) {
|
||||
winston.error('[meta/dependencies] Could not read: ' + module);
|
||||
process.exit();
|
||||
process.stdout.write('[' + 'missing'.red + '] ' + module.bold + ' is a required dependency but could not be found\n');
|
||||
depsMissing = true;
|
||||
next(true);
|
||||
}
|
||||
});
|
||||
}, function(ok) {
|
||||
callback(!ok && global.env !== 'development' ? new Error('dependencies-out-of-date') : null);
|
||||
if (depsMissing) {
|
||||
callback(new Error('dependencies-missing'));
|
||||
} else if (depsOutdated) {
|
||||
callback(global.env !== 'development' ? new Error('dependencies-out-of-date') : null);
|
||||
} else {
|
||||
callback(null);
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user