UNPKG

cc-model-switcher

Version:

A simple CLI tool to switch Claude Code AI models easily

73 lines (61 loc) 2.01 kB
#!/usr/bin/env node const { spawn } = require('child_process'); const fs = require('fs'); const path = require('path'); console.log('=== 路径调试信息 ==='); console.log('process.cwd():', process.cwd()); console.log('__dirname:', __dirname); console.log('process.argv:', process.argv); console.log('process.env.PWD:', process.env.PWD); console.log('process.env.INIT_CWD:', process.env.INIT_CWD); // 检查claude命令是否存在 console.log('\n=== Claude命令检查 ==='); const { execSync } = require('child_process'); try { const result = execSync('where claude', { encoding: 'utf8', shell: true }); console.log('claude路径:', result.trim()); } catch (e) { console.log('claude未找到:', e.message); } // 检查当前目录 console.log('\n=== 当前目录检查 ==='); console.log('当前目录存在:', fs.existsSync(process.cwd())); console.log('当前目录内容:', fs.readdirSync(process.cwd()).slice(0, 5)); // 测试不同的spawn方式 console.log('\n=== 测试spawn方式 ==='); // 方式1: 直接spawn console.log('方式1: 直接spawn claude'); try { const test1 = spawn('claude', ['--version'], { stdio: 'pipe', shell: true, cwd: process.cwd() }); test1.on('error', (err) => { console.log('方式1错误:', err.message); }); test1.on('close', (code) => { console.log('方式1退出码:', code); }); } catch (e) { console.log('方式1异常:', e.message); } // 方式2: 使用完整路径 console.log('\n方式2: 使用完整路径'); try { const claudePath = execSync('where claude', { encoding: 'utf8', shell: true }).trim(); console.log('使用claude路径:', claudePath); const test2 = spawn(claudePath, ['--version'], { stdio: 'pipe', shell: true, cwd: process.cwd() }); test2.on('error', (err) => { console.log('方式2错误:', err.message); }); test2.on('close', (code) => { console.log('方式2退出码:', code); }); } catch (e) { console.log('方式2异常:', e.message); }