修改架构,移动端优先。
save
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
// 从 public/favicon.svg 派生 Tauri 需要的各尺寸 PNG 图标
|
||||
// 用法: node scripts/generate-icons.mjs
|
||||
// 一次性脚本, 生成的图标随仓库提交, 不需要每次都跑
|
||||
import sharp from 'sharp'
|
||||
import path from 'node:path'
|
||||
import fs from 'node:fs'
|
||||
|
||||
const SVG = path.join(process.cwd(), 'public', 'favicon.svg')
|
||||
const OUT = path.join(process.cwd(), 'src-tauri', 'icons')
|
||||
fs.mkdirSync(OUT, { recursive: true })
|
||||
|
||||
const svg = fs.readFileSync(SVG)
|
||||
const base = sharp(svg)
|
||||
|
||||
// Tauri 桌面 + Android 需要的尺寸
|
||||
const TARGETS = [
|
||||
{ name: '32x32.png', size: 32 },
|
||||
{ name: '128x128.png', size: 128 },
|
||||
{ name: '128x128@2x.png', size: 256 },
|
||||
{ name: 'icon.png', size: 1024 },
|
||||
]
|
||||
|
||||
for (const t of TARGETS) {
|
||||
const buf = await base.clone().resize(t.size, t.size).png().toBuffer()
|
||||
fs.writeFileSync(path.join(OUT, t.name), buf)
|
||||
console.log('wrote', t.name, t.size + 'x' + t.size)
|
||||
}
|
||||
|
||||
// Windows .ico (单 256x256 frame, 简单够用)
|
||||
const ico = await sharp(svg).resize(256, 256).png().toBuffer()
|
||||
fs.writeFileSync(path.join(OUT, 'icon.ico'), ico)
|
||||
console.log('wrote icon.ico (256x256 PNG-as-ICO)')
|
||||
|
||||
// macOS .icns: TaurCli 可用 png2icns 工具, 这里只放占位
|
||||
// 如果未来要打 macOS DMG, 跑 cargo tauri icon 重新生成
|
||||
fs.copyFileSync(path.join(OUT, 'icon.png'), path.join(OUT, 'icon.icns'))
|
||||
console.log('wrote icon.icns (copy of icon.png, run cargo tauri icon to replace)')
|
||||
Reference in New Issue
Block a user