UNPKG

@tianyio/quality-helper

Version:

A comprehensive quality helper tool for project scaffolding and management

88 lines (79 loc) 2.39 kB
#!/usr/bin/env node 'use strict' import { program } from 'commander' import { createProject, updateConfig, updateDependencies, checkDependencies, } from '../dist/es/index.js' import chalk from 'chalk' import { readFileSync } from 'fs' import { join, dirname } from 'path' import { fileURLToPath } from 'url' // 从package.json获取版本号 const __filename = fileURLToPath(import.meta.url) const __dirname = dirname(__filename) const packageJsonPath = join(__dirname, '..', 'package.json') const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')) program .name('quality-helper') .description('集成Vite功能的现代化前端脚手架工具') .version(packageJson.version) // 创建项目命令 program .command('create [project-name]') .description('使用新接口创建前端项目 (single|monorepo)') .option('-m, --monorepo', '创建monorepo架构项目') .option('-s, --single', '创建单体仓库项目') .action(async (projectName, options) => { try { await createProject(projectName, options) } catch (error) { console.error(chalk.red('❌ 项目创建失败:'), error.message) process.exit(1) } }) // 更新配置文件命令 program .command('update-config') .description('更新项目配置文件') .action(async () => { try { await updateConfig() } catch (error) { console.error(chalk.red('❌ 配置更新失败:'), error.message) process.exit(1) } }) // 更新依赖命令 program .command('update-deps') .description('更新项目依赖(支持交互式选择依赖列表文件)') .option('-i, --interactive', '启用交互式模式,可选择本地依赖列表文件') .action(async options => { try { await updateDependencies() } catch (error) { console.error(chalk.red('❌ 依赖更新失败:'), error.message) process.exit(1) } }) // 检查依赖状态命令 program .command('check-deps') .description('检查项目依赖状态') .action(async () => { try { await checkDependencies() } catch (error) { console.error(chalk.red('❌ 依赖状态检查失败:'), error.message) process.exit(1) } }) // 解析命令行参数 program.parse(process.argv) // 如果没有提供任何命令,显示帮助信息 if (!process.argv.slice(2).length) { program.outputHelp() }