|
function parseVersion(version) {
|
|
return version.split('.').map(Number);
|
|
}
|
|
|
|
function compareVersions(v1, v2) {
|
|
const v1Parts = parseVersion(v1);
|
|
const v2Parts = parseVersion(v2);
|
|
|
|
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
const v1Part = v1Parts[i] || 0;
|
|
const v2Part = v2Parts[i] || 0;
|
|
|
|
if (v1Part > v2Part) return 1;
|
|
if (v1Part < v2Part) return -1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
const currentVersion = process.version.substring(1);
|
|
const targetVersion = "18.17.1";
|
|
|
|
if (compareVersions(currentVersion, targetVersion) >= 0) {
|
|
console.log(`Current Node.js version is ${currentVersion}, corepack is supported.`);
|
|
} else {
|
|
console.error(`Current Node.js version is ${currentVersion}, but corepack is unsupported. Required version: ^${targetVersion}.`);
|
|
process.exit(1)
|
|
}
|
|
|