/**
* 生成小程序所需的图标和图片
* 运行: node scripts/generateImages.js
*/
const fs = require('fs')
const path = require('path')
const imagesDir = path.join(__dirname, '..', 'images')
// 确保 images 目录存在
if (!fs.existsSync(imagesDir)) {
fs.mkdirSync(imagesDir, { recursive: true })
}
// SVG 图标定义 (48x48)
const icons = {
// 箭头图标
'icon-arrow': ``,
// 勾选图标
'icon-check': ``,
// 挑战图标
'icon-challenge': ``,
// 历史图标
'icon-history': ``,
// 信息图标
'icon-info': ``,
// 订单图标
'icon-order': ``,
// 积分图标
'icon-points': ``,
// 二维码图标
'icon-qrcode': ``,
// 排名图标
'icon-ranking': ``,
// 记录图标
'icon-records': ``,
// 扫码图标
'icon-scan': ``,
// 门店图标
'icon-store': ``
}
// 空状态图片 (200x160)
const emptyImages = {
// 空排名
'empty-ranking': ``,
// 空门店
'empty-store': ``,
// 空比赛
'empty-match': ``,
// 空记录
'empty-records': ``,
// 空商品
'empty-products': ``,
// 空订单
'empty-order': ``
}
// 默认图片
const defaultImages = {
// 默认头像 (120x120)
'avatar-default': ``,
// 默认商品图 (200x200)
'product-default': ``
}
// 写入 SVG 文件
function writeSvgFile(name, content) {
const filePath = path.join(imagesDir, `${name}.svg`)
fs.writeFileSync(filePath, content.trim())
console.log(`✓ 已生成: ${name}.svg`)
}
// 生成所有图标
console.log('\n=== 生成图标 ===')
Object.entries(icons).forEach(([name, svg]) => {
writeSvgFile(name, svg)
})
// 生成所有空状态图片
console.log('\n=== 生成空状态图片 ===')
Object.entries(emptyImages).forEach(([name, svg]) => {
writeSvgFile(name, svg)
})
// 生成默认图片
console.log('\n=== 生成默认图片 ===')
Object.entries(defaultImages).forEach(([name, svg]) => {
writeSvgFile(name, svg)
})
console.log('\n所有图片生成完成!')
console.log('提示: 微信小程序支持 SVG 格式图片,可直接使用')
console.log('如需 PNG 格式,可使用在线工具转换或安装 sharp 库')