vibe-cli-tool
Version:
VibeCLI v1.9 - 模板商店生态,智能部署生成,多语言支持,交互式学习系统,企业级Web全栈应用CLI工具
37 lines • 1.39 kB
JavaScript
import fs from 'fs-extra';
import path from 'path';
import chalk from 'chalk';
import { execSync } from 'child_process';
export async function ensureDependenciesInstalled(projectRoot, deps, dev = false) {
const pkgPath = path.join(projectRoot, 'package.json');
if (!await fs.pathExists(pkgPath)) {
console.log(chalk.red('package.json 未找到,无法检查依赖'));
return;
}
const pkgJson = await fs.readJson(pkgPath);
const installedDeps = {
...(pkgJson.dependencies || {}),
...(pkgJson.devDependencies || {})
};
const missing = [];
for (const [pkg, version] of Object.entries(deps)) {
if (!installedDeps[pkg]) {
missing.push(`${pkg}@${version}`);
}
}
if (missing.length === 0) {
console.log(chalk.green('所有核心依赖已安装'));
return;
}
console.log(chalk.yellow('检测到缺失依赖: ' + missing.join(', ')));
try {
const installCmd = `npm install ${dev ? '-D ' : ''}${missing.join(' ')}`;
console.log(chalk.blue(`执行: ${installCmd}`));
execSync(installCmd, { stdio: 'inherit', cwd: projectRoot });
console.log(chalk.green('依赖安装完成'));
}
catch (err) {
console.error(chalk.red('自动安装依赖失败,请手动安装'));
}
}
//# sourceMappingURL=dependency-checker.js.map