ts/scripts/ts_version.js (25 lines of code) (raw):

const { execSync } = require('child_process'); const nodeVersion = process.versions.node; console.log(`Running with Node.js version: ${nodeVersion}`); // 定义不同 Node 版本对应的 TypeScript 和 @types/node 版本 const depsMap = { '10': { typescript: 'typescript@^3.9.7', nodeTypes: '@types/node@^12.0.0' }, '12': { typescript: 'typescript@^4.1.3', nodeTypes: '@types/node@^12.0.0' } }; // 获取当前 Node major 版本 const majorVersion = nodeVersion.split('.')[0]; // 选择合适的版本 const { typescript, nodeTypes } = depsMap[majorVersion] || {}; if(!typescript) { process.exit(0); } console.log(`Installing ${typescript} and ${nodeTypes}...`); try { execSync(`npm install --no-save ${typescript} ${nodeTypes}`, { stdio: 'inherit' }); } catch (error) { console.error('Error installing specific TypeScript and @types/node version:', error); process.exit(1); }