35 lines
908 B
JavaScript
35 lines
908 B
JavaScript
#!/usr/bin/env node
|
|
|
|
const { execSync } = require('child_process');
|
|
const fs = require('fs');
|
|
|
|
// Check Node.js version
|
|
const nodeVersion = execSync('node --version').toString().trim();
|
|
const requiredVersions = ['v18','v20'];
|
|
|
|
// Check operating system
|
|
const os = process.platform;
|
|
console.log(`Running on ${os} operating system.`)
|
|
|
|
if (requiredVersions.some(version=>nodeVersion.startsWith(version))) {
|
|
console.log(`Node.js version is compatible ${nodeVersion}.`);
|
|
} else {
|
|
console.log(`Node.js version is not compatible. Required version: ${requiredVersions.toString()}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Proceed with your commands
|
|
if (os === 'win32') {
|
|
if (fs.existsSync('node_modules')) {
|
|
execSync('rmdir node_modules /s /q');
|
|
}
|
|
}
|
|
else {
|
|
execSync('rm -rf node_modules');
|
|
}
|
|
execSync('npm ci');
|
|
execSync('npx pnpm store add \
|
|
@tsconfig/node18@1.0.0 \
|
|
@types/node@18.17.1 \
|
|
typescript@4.8.4');
|