mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-03 20:45:58 +01:00
Ensure installed correct version of modules on startup, bump dependencies (#6207)
* Ensure installed correct version of modules
* Bump dependencies
* Bump promise-polyfill
* Fix emailer test
* Fix auto-install regression
introduced in 9b5e0f9e95
This commit is contained in:
committed by
Julian Lam
parent
9922720dd3
commit
4387d5d466
@@ -19,23 +19,23 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ace-builds": "^1.2.9",
|
"ace-builds": "^1.2.9",
|
||||||
"async": "2.6.0",
|
"async": "2.6.0",
|
||||||
"autoprefixer": "7.1.6",
|
"autoprefixer": "7.2.4",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"benchpressjs": "^1.2.0",
|
"benchpressjs": "^1.2.0",
|
||||||
"body-parser": "^1.18.2",
|
"body-parser": "^1.18.2",
|
||||||
"bootstrap": "^3.3.7",
|
"bootstrap": "^3.3.7",
|
||||||
"chart.js": "^2.7.0",
|
"chart.js": "^2.7.1",
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
"compression": "^1.7.1",
|
"compression": "^1.7.1",
|
||||||
"commander": "^2.11.0",
|
"commander": "^2.12.2",
|
||||||
"connect-ensure-login": "^0.1.1",
|
"connect-ensure-login": "^0.1.1",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"connect-mongo": "2.0.0",
|
"connect-mongo": "2.0.1",
|
||||||
"connect-multiparty": "^2.1.0",
|
"connect-multiparty": "^2.1.0",
|
||||||
"connect-redis": "3.3.2",
|
"connect-redis": "3.3.3",
|
||||||
"cookie-parser": "^1.4.3",
|
"cookie-parser": "^1.4.3",
|
||||||
"cron": "^1.3.0",
|
"cron": "^1.3.0",
|
||||||
"cropperjs": "^1.1.3",
|
"cropperjs": "^1.2.2",
|
||||||
"csurf": "^1.9.0",
|
"csurf": "^1.9.0",
|
||||||
"daemon": "^1.1.0",
|
"daemon": "^1.1.0",
|
||||||
"express": "^4.16.2",
|
"express": "^4.16.2",
|
||||||
@@ -48,12 +48,12 @@
|
|||||||
"jquery": "^3.2.1",
|
"jquery": "^3.2.1",
|
||||||
"jsesc": "2.5.1",
|
"jsesc": "2.5.1",
|
||||||
"json-2-csv": "^2.1.2",
|
"json-2-csv": "^2.1.2",
|
||||||
"less": "^2.7.2",
|
"less": "^2.7.3",
|
||||||
"lodash": "^4.17.4",
|
"lodash": "^4.17.4",
|
||||||
"logrotate-stream": "^0.2.5",
|
"logrotate-stream": "^0.2.5",
|
||||||
"lru-cache": "4.1.1",
|
"lru-cache": "4.1.1",
|
||||||
"material-design-lite": "^1.3.0",
|
"material-design-lite": "^1.3.0",
|
||||||
"mime": "^2.0.3",
|
"mime": "^2.2.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mongodb": "2.2.33",
|
"mongodb": "2.2.33",
|
||||||
"morgan": "^1.9.0",
|
"morgan": "^1.9.0",
|
||||||
@@ -73,18 +73,18 @@
|
|||||||
"nodebb-theme-slick": "1.1.2",
|
"nodebb-theme-slick": "1.1.2",
|
||||||
"nodebb-theme-vanilla": "8.1.4",
|
"nodebb-theme-vanilla": "8.1.4",
|
||||||
"nodebb-widget-essentials": "4.0.1",
|
"nodebb-widget-essentials": "4.0.1",
|
||||||
"nodemailer": "4.4.0",
|
"nodemailer": "4.4.1",
|
||||||
"passport": "^0.4.0",
|
"passport": "^0.4.0",
|
||||||
"passport-local": "1.0.0",
|
"passport-local": "1.0.0",
|
||||||
"postcss": "6.0.14",
|
"postcss": "6.0.15",
|
||||||
"postcss-clean": "1.1.0",
|
"postcss-clean": "1.1.0",
|
||||||
"promise-polyfill": "^6.0.2",
|
"promise-polyfill": "^7.0.0",
|
||||||
"prompt": "^1.0.0",
|
"prompt": "^1.0.0",
|
||||||
"redis": "2.8.0",
|
"redis": "2.8.0",
|
||||||
"request": "2.83.0",
|
"request": "2.83.0",
|
||||||
"rimraf": "2.6.2",
|
"rimraf": "2.6.2",
|
||||||
"rss": "^1.2.2",
|
"rss": "^1.2.2",
|
||||||
"sanitize-html": "^1.14.1",
|
"sanitize-html": "^1.16.3",
|
||||||
"semver": "^5.4.1",
|
"semver": "^5.4.1",
|
||||||
"serve-favicon": "^2.4.5",
|
"serve-favicon": "^2.4.5",
|
||||||
"sitemap": "^1.13.0",
|
"sitemap": "^1.13.0",
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
"socketio-wildcard": "2.0.0",
|
"socketio-wildcard": "2.0.0",
|
||||||
"spdx-license-list": "^3.0.1",
|
"spdx-license-list": "^3.0.1",
|
||||||
"toobusy-js": "^0.5.1",
|
"toobusy-js": "^0.5.1",
|
||||||
"uglify-js": "^3.1.5",
|
"uglify-js": "^3.3.4",
|
||||||
"validator": "9.1.2",
|
"validator": "9.2.0",
|
||||||
"winston": "^2.4.0",
|
"winston": "^2.4.0",
|
||||||
"xml": "^1.0.1",
|
"xml": "^1.0.1",
|
||||||
"xregexp": "3.2.0",
|
"xregexp": "3.2.0",
|
||||||
@@ -103,16 +103,16 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"coveralls": "^3.0.0",
|
"coveralls": "^3.0.0",
|
||||||
"eslint": "^4.9.0",
|
"eslint": "^4.14.0",
|
||||||
"eslint-config-airbnb-base": "^12.1.0",
|
"eslint-config-airbnb-base": "^12.1.0",
|
||||||
"eslint-plugin-import": "^2.8.0",
|
"eslint-plugin-import": "^2.8.0",
|
||||||
"grunt": "^1.0.1",
|
"grunt": "^1.0.1",
|
||||||
"grunt-contrib-watch": "^1.0.0",
|
"grunt-contrib-watch": "^1.0.0",
|
||||||
"jsdom": "^11.3.0",
|
"jsdom": "^11.5.1",
|
||||||
"mocha": "^4.0.1",
|
"mocha": "^4.1.0",
|
||||||
"mocha-lcov-reporter": "^1.3.0",
|
"mocha-lcov-reporter": "^1.3.0",
|
||||||
"nyc": "^11.2.1",
|
"nyc": "^11.4.1",
|
||||||
"smtp-server": "^3.3.0"
|
"smtp-server": "^3.4.1"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||||
|
|||||||
@@ -6,9 +6,11 @@ var path = require('path');
|
|||||||
var packageInstall = require('./package-install');
|
var packageInstall = require('./package-install');
|
||||||
var dirname = require('./paths').baseDir;
|
var dirname = require('./paths').baseDir;
|
||||||
|
|
||||||
|
var defaultPackage;
|
||||||
|
|
||||||
// check to make sure dependencies are installed
|
// check to make sure dependencies are installed
|
||||||
try {
|
try {
|
||||||
fs.readFileSync(path.join(dirname, 'package.json'));
|
defaultPackage = JSON.parse(fs.readFileSync(path.join(dirname, 'install/package.json'), 'utf8'));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.code === 'ENOENT') {
|
if (e.code === 'ENOENT') {
|
||||||
console.warn('package.json not found.');
|
console.warn('package.json not found.');
|
||||||
@@ -29,13 +31,24 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fs.readFileSync(path.join(dirname, 'node_modules/async/package.json'), 'utf8');
|
var semver = require('semver');
|
||||||
fs.readFileSync(path.join(dirname, 'node_modules/commander/package.json'), 'utf8');
|
|
||||||
fs.readFileSync(path.join(dirname, 'node_modules/colors/package.json'), 'utf8');
|
var checkVersion = function (packageName) {
|
||||||
fs.readFileSync(path.join(dirname, 'node_modules/nconf/package.json'), 'utf8');
|
var version = JSON.parse(fs.readFileSync(path.join(dirname, 'node_modules', packageName, 'package.json'), 'utf8')).version;
|
||||||
|
if (!semver.satisfies(version, defaultPackage.dependencies[packageName])) {
|
||||||
|
var e = new TypeError('Incorrect dependency version: ' + packageName);
|
||||||
|
e.code = 'DEP_WRONG_VERSION';
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
checkVersion('nconf');
|
||||||
|
checkVersion('async');
|
||||||
|
checkVersion('commander');
|
||||||
|
checkVersion('colors');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.code === 'ENOENT') {
|
if (['ENOENT', 'DEP_WRONG_VERSION', 'MODULE_NOT_FOUND'].indexOf(e.code) !== -1) {
|
||||||
console.warn('Dependencies not yet installed.');
|
console.warn('Dependencies outdated or not yet installed.');
|
||||||
console.log('Installing them now...\n');
|
console.log('Installing them now...\n');
|
||||||
|
|
||||||
packageInstall.installAll();
|
packageInstall.installAll();
|
||||||
|
|||||||
@@ -30,8 +30,6 @@ function updatePackageFile() {
|
|||||||
exports.updatePackageFile = updatePackageFile;
|
exports.updatePackageFile = updatePackageFile;
|
||||||
|
|
||||||
function installAll() {
|
function installAll() {
|
||||||
process.stdout.write(' started\n'.green);
|
|
||||||
|
|
||||||
var prod = global.env !== 'development';
|
var prod = global.env !== 'development';
|
||||||
var command = 'npm install';
|
var command = 'npm install';
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ var steps = {
|
|||||||
install: {
|
install: {
|
||||||
message: 'Bringing base dependencies up to date...',
|
message: 'Bringing base dependencies up to date...',
|
||||||
handler: function (next) {
|
handler: function (next) {
|
||||||
|
process.stdout.write(' started\n'.green);
|
||||||
packageInstall.installAll();
|
packageInstall.installAll();
|
||||||
next();
|
next();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ var JS = module.exports;
|
|||||||
|
|
||||||
JS.scripts = {
|
JS.scripts = {
|
||||||
base: [
|
base: [
|
||||||
|
'node_modules/promise-polyfill/dist/polyfill.js',
|
||||||
'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',
|
||||||
'public/vendor/jquery/timeago/jquery.timeago.js',
|
'public/vendor/jquery/timeago/jquery.timeago.js',
|
||||||
@@ -36,7 +37,6 @@ JS.scripts = {
|
|||||||
'public/src/ajaxify.js',
|
'public/src/ajaxify.js',
|
||||||
'public/src/overrides.js',
|
'public/src/overrides.js',
|
||||||
'public/src/widgets.js',
|
'public/src/widgets.js',
|
||||||
'node_modules/promise-polyfill/promise.js',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
// files listed below are only available client-side, or are bundled in to reduce # of network requests on cold load
|
// files listed below are only available client-side, or are bundled in to reduce # of network requests on cold load
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ describe('emailer', function () {
|
|||||||
Meta.configs.setMultiple({
|
Meta.configs.setMultiple({
|
||||||
'email:smtpTransport:enabled': '1',
|
'email:smtpTransport:enabled': '1',
|
||||||
'email:smtpTransport:user': username,
|
'email:smtpTransport:user': username,
|
||||||
|
'email:smtpTransport:pass': 'anything',
|
||||||
'email:smtpTransport:service': 'nodebb-custom-smtp',
|
'email:smtpTransport:service': 'nodebb-custom-smtp',
|
||||||
'email:smtpTransport:port': 4000,
|
'email:smtpTransport:port': 4000,
|
||||||
'email:smtpTransport:host': 'localhost',
|
'email:smtpTransport:host': 'localhost',
|
||||||
|
|||||||
Reference in New Issue
Block a user