chore: 导入清理前的完整工程状态(含 Capacitor 原生壳,作为回滚备份点)
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import { execSync } from 'node:child_process'
|
||||
import { copyFileSync, mkdirSync, rmSync, statSync } from 'node:fs'
|
||||
import { resolve } from 'node:path'
|
||||
|
||||
const root = resolve(import.meta.dirname, '..')
|
||||
const skillName = 'cook'
|
||||
const skillDir = resolve(root, 'skills', skillName)
|
||||
const skillsDir = resolve(root, 'skills')
|
||||
const outputPath = resolve(skillsDir, `${skillName}.zip`)
|
||||
|
||||
// 需要打包的数据文件(供 Fallback 使用,CLI 不可用时 AI 直接读取)
|
||||
const dataFiles = [
|
||||
'recipe.csv',
|
||||
'incompatible-foods.csv',
|
||||
]
|
||||
|
||||
const dataSourceDir = resolve(root, 'packages/data')
|
||||
const dataTargetDir = resolve(skillDir, 'data')
|
||||
|
||||
// 1. 复制数据文件到 skills/cook/data/
|
||||
mkdirSync(dataTargetDir, { recursive: true })
|
||||
for (const file of dataFiles) {
|
||||
copyFileSync(resolve(dataSourceDir, file), resolve(dataTargetDir, file))
|
||||
}
|
||||
|
||||
// 2. 打包(保留目录结构)
|
||||
mkdirSync(skillsDir, { recursive: true })
|
||||
execSync(`zip -r "${outputPath}" ${skillName}`, { cwd: skillsDir, stdio: 'ignore' })
|
||||
|
||||
// 3. 清理临时复制的数据目录
|
||||
rmSync(dataTargetDir, { recursive: true, force: true })
|
||||
|
||||
const size = (statSync(outputPath).size / 1024).toFixed(1)
|
||||
console.log(`✅ Packed skills/${skillName}/ → skills/${skillName}.zip (${size} KB)`)
|
||||
Reference in New Issue
Block a user