25 lines
680 B
JavaScript
25 lines
680 B
JavaScript
var semverCompare = require('semver-compare')
|
|
|
|
module.exports = function pleaseUpgradeNode(pkg, opts) {
|
|
var opts = opts || {}
|
|
var requiredVersion = pkg.engines.node.replace('>=', '')
|
|
var currentVersion = process.version.replace('v', '')
|
|
if (semverCompare(currentVersion, requiredVersion) === -1) {
|
|
if (opts.message) {
|
|
console.error(opts.message(requiredVersion))
|
|
} else {
|
|
console.error(
|
|
pkg.name +
|
|
' requires at least version ' +
|
|
requiredVersion +
|
|
' of Node, please upgrade'
|
|
)
|
|
}
|
|
|
|
if (opts.hasOwnProperty('exitCode')) {
|
|
process.exit(opts.exitCode)
|
|
} else {
|
|
process.exit(1)
|
|
}
|
|
}
|
|
}
|