cc-model-switcher
Version:
A simple CLI tool to switch Claude Code AI models easily
73 lines (61 loc) • 2.01 kB
JavaScript
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);
}