/** * 从已确认的图标包同步 YCode 应用图标,不重新绘制或缩放原图。 * 输入:resources/branding/(原图、各尺寸 PNG、Windows ICO 和预览) * 用法:node scripts/gen-icon.mjs */ import { copyFileSync, mkdirSync, readdirSync } from 'node:fs' import { dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' const root = join(dirname(fileURLToPath(import.meta.url)), '..') const packDir = join(root, 'resources', 'branding') function copy(source, destination) { const target = join(root, destination) mkdirSync(dirname(target), { recursive: true }) copyFileSync(join(packDir, source), target) } copy('windows/ycode.ico', 'build/icon.ico') copy('png/ycode-1024.png', 'build/icon.png') copy('png/ycode-512.png', 'resources/icon.png') copy('png/ycode-32.png', 'resources/tray.png') copy('Ycode-Icon-Preview.png', 'build/icon-preview.png') copy('png/ycode-128.png', 'src/renderer/src/assets/ycode.png') copy('web/favicon.ico', 'src/renderer/public/favicon.ico') for (const filename of readdirSync(join(packDir, 'png'))) { const match = /^ycode-(\d+)\.png$/.exec(filename) if (match) copy(`png/${filename}`, `build/sizes/icon-${match[1]}.png`) } console.log('YCode 图标已同步:Windows ICO、窗口、托盘、界面、favicon 和各尺寸 PNG')