58 lines
1.8 KiB
JavaScript
58 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
var minimumVersion = '12.10';
|
|
var futureDeprecationMinVersion = '14.0';
|
|
var recommendedVersion = '14.5';
|
|
var currentVersion = process.versions.node;
|
|
|
|
function isNodeLT(v) {
|
|
var check = v.split('.').map(Number);
|
|
var node = currentVersion.split('.').map(Number);
|
|
return node[0] < check[0] || (node[0] === check[0] && node[1] < check[1]);
|
|
}
|
|
|
|
if (isNodeLT(minimumVersion)) {
|
|
console.error(
|
|
'\nYour current version of Node is v' +
|
|
currentVersion +
|
|
', however Stencil requires v' +
|
|
minimumVersion +
|
|
'.0 or greater. It is recommended to use an Active LTS version of Node (https://nodejs.org/en/about/releases/).\n'
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
if (isNodeLT(futureDeprecationMinVersion)) {
|
|
console.warn(
|
|
'\nIn an upcoming major release of Stencil, Node v' + recommendedVersion + '.0 or higher will be required.\n'
|
|
);
|
|
} else if (isNodeLT(recommendedVersion)) {
|
|
console.warn(
|
|
'\nYour current version of Node is v' +
|
|
currentVersion +
|
|
", however Stencil's recommendation is v" +
|
|
recommendedVersion +
|
|
'.0 or greater. Note that future versions of Stencil will eventually remove support for non-LTS Node versions and an Active LTS version is recommended (https://nodejs.org/en/about/releases/).\n'
|
|
);
|
|
}
|
|
|
|
var cli = require('../cli/index.cjs');
|
|
var nodeApi = require('../sys/node/index.js');
|
|
var nodeLogger = nodeApi.createNodeLogger({ process: process });
|
|
var nodeSys = nodeApi.createNodeSys({ process: process, logger: nodeLogger });
|
|
|
|
nodeApi.setupNodeProcess({ process: process, logger: nodeLogger });
|
|
|
|
cli
|
|
.run({
|
|
args: process.argv.slice(2),
|
|
logger: nodeLogger,
|
|
sys: nodeSys,
|
|
checkVersion: nodeApi.checkVersion,
|
|
})
|
|
.catch(function (err) {
|
|
console.error('uncaught error', err);
|
|
process.exit(1);
|
|
});
|