Improve the Node version warning because why not
This makes the warning look nice and consistent with the other logs we display, while being safe to never break if a dependency/loaded file is not compatible with this version of Node. Note that there is some ES6 syntax (`let`, arrow functions, template literals), but The Lounge has not been compatible with Node v0.10 for a very long time now.
This commit is contained in:
parent
13a53706f0
commit
421d2b7b70
29
index.js
29
index.js
@ -5,14 +5,31 @@
|
||||
process.chdir(__dirname);
|
||||
|
||||
// Perform node version check before loading any other files or modules
|
||||
// Doing this check as soon as possible allows us to avoid ES6 parser errors or other issues
|
||||
// Doing this check as soon as possible allows us to avoid ES6 parser errors or
|
||||
// other issues
|
||||
// Try to display warnings nicely, but gracefully degrade if anything goes wrong
|
||||
var pkg = require("./package.json");
|
||||
if (!require("semver").satisfies(process.version, pkg.engines.node)) {
|
||||
/* eslint-disable no-console */
|
||||
console.error("=== WARNING!");
|
||||
console.error("=== The oldest supported Node.js version is", pkg.engines.node);
|
||||
console.error("=== We strongly encourage you to upgrade, see https://nodejs.org/en/download/package-manager/ for more details\n");
|
||||
/* eslint-enable no-console */
|
||||
let colors;
|
||||
let log;
|
||||
|
||||
try {
|
||||
colors = require("colors/safe");
|
||||
} catch (e) {
|
||||
colors = {};
|
||||
colors.green = colors.red = colors.bold = (x) => x;
|
||||
}
|
||||
|
||||
try {
|
||||
log = require("./src/log");
|
||||
} catch (e) {
|
||||
log = {};
|
||||
log.warn = (msg) => console.error(`[WARN] ${msg}`); // eslint-disable-line no-console
|
||||
}
|
||||
|
||||
log.warn(`The Lounge requires Node.js ${colors.green(pkg.engines.node)} (current version: ${colors.red(process.version)})`);
|
||||
log.warn(colors.bold("We strongly encourage you to upgrade Node.js"));
|
||||
log.warn("See https://nodejs.org/en/download/package-manager/ for more details");
|
||||
}
|
||||
|
||||
require("./src/command-line");
|
||||
|
Loading…
Reference in New Issue
Block a user