/** * 可选本地维护脚本(`pnpm run clean:dev`) * * 说明:历史上本脚本会批量删除模板演示资源并重写 `router/modules`、README 等, * 与当前 zkxw 已裁剪的 `web-admin` 冲突。**已移除所有破坏性步骤**。 * * 现仅支持:在确认后清空 `src/mock/upgrade/changeLog.ts` 中的演示升级记录(可选)。 */ import fs from 'fs/promises' import path from 'path' const theme = { reset: '\x1b[0m', bold: '\x1b[1m', dim: '\x1b[2m', primary: '\x1b[38;5;75m', success: '\x1b[38;5;82m', warning: '\x1b[38;5;220m', error: '\x1b[38;5;196m', gray: '\x1b[38;5;245m', white: '\x1b[38;5;255m' } const fmt = { title: (t: string) => `${theme.bold}${theme.primary}${t}${theme.reset}`, success: (t: string) => `${theme.success}${t}${theme.reset}`, error: (t: string) => `${theme.error}${t}${theme.reset}`, warning: (t: string) => `${theme.warning}${t}${theme.reset}`, highlight: (t: string) => `${theme.bold}${theme.white}${t}${theme.reset}`, dim: (t: string) => `${theme.dim}${theme.gray}${t}${theme.reset}` } async function getUserConfirmation(): Promise { const { createInterface } = await import('readline') return new Promise((resolve) => { const rl = createInterface({ input: process.stdin, output: process.stdout }) console.log() console.log( ` ${fmt.highlight('清空 mock 升级日志')} ${fmt.dim('(src/mock/upgrade/changeLog.ts)')}` ) console.log(` ${fmt.dim('输入 yes 并回车确认,其它键取消')}`) console.log() process.stdout.write(' > ') rl.question('', (answer: string) => { rl.close() resolve(answer.toLowerCase().trim() === 'yes') }) }) } async function resetChangeLog(): Promise { const changeLogPath = path.resolve(process.cwd(), 'src/mock/upgrade/changeLog.ts') const cleaned = `import { ref } from 'vue' interface UpgradeLog { version: string title: string date: string detail?: string[] requireReLogin?: boolean remark?: string } export const upgradeLogList = ref([]) ` await fs.writeFile(changeLogPath, cleaned, 'utf-8') console.log(` ${fmt.success('已写入')}: ${changeLogPath}`) } async function main() { console.clear() console.log() console.log(` ${fmt.title('web-admin · clean-dev(安全模式)')}`) console.log(` ${fmt.dim('不会删除路由、README、业务页面或重写 routesAlias。')}`) console.log() const ok = await getUserConfirmation() if (!ok) { console.log(` ${fmt.warning('已取消')}`) console.log() return } try { await resetChangeLog() console.log() console.log(` ${fmt.success('完成')}`) } catch (e) { console.log(` ${fmt.error('失败: ' + String(e))}`) process.exit(1) } console.log() } main().catch((err) => { console.error(err) process.exit(1) })