check-node-version.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env node
  2. import fs from 'fs';
  3. import path from 'path';
  4. import { execSync } from 'child_process';
  5. import { fileURLToPath } from 'url';
  6. const __filename = fileURLToPath(import.meta.url);
  7. const __dirname = path.dirname(__filename);
  8. // 读取 .nvmrc 文件获取所需的 Node.js 版本
  9. const requiredVersion = fs.readFileSync(path.join(__dirname, '..', '.nvmrc'), 'utf8').trim();
  10. const currentVersion = process.version.slice(1); // 移除版本号前的 'v'
  11. console.log(`检查 Node.js 版本...`);
  12. console.log(`当前版本: ${currentVersion}`);
  13. console.log(`所需版本: ${requiredVersion}`);
  14. // 比较版本号的主要部分
  15. const currentMajor = parseInt(currentVersion.split('.')[0], 10);
  16. const requiredMajor = parseInt(requiredVersion.split('.')[0], 10);
  17. if (currentMajor !== requiredMajor) {
  18. console.error(`\n错误: Node.js 版本不匹配!`);
  19. console.error(`本项目需要 Node.js ${requiredVersion}`);
  20. console.error(`当前使用的是 Node.js ${currentVersion}`);
  21. console.error(`\n请尝试以下方法之一:`);
  22. console.error(`1. 如果已安装 nvm: 运行 'nvm use ${requiredVersion}'`);
  23. console.error(`2. 安装所需版本: 'nvm install ${requiredVersion}'`);
  24. console.error(`3. 从 https://nodejs.org/ 下载并安装 Node.js ${requiredVersion}`);
  25. process.exit(1);
  26. }
  27. console.log(`Node.js 版本检查通过!`);