// 用法: node svg2png.mjs [width] // 把 srcDir 下所有 .svg 转为 outDir 下同名 .png(默认 800 宽,2x 高清) import sharp from 'sharp' import { readdirSync, mkdirSync } from 'fs' import { join } from 'path' const [srcDir, outDir, widthArg] = process.argv.slice(2) const width = Number(widthArg) || 800 mkdirSync(outDir, { recursive: true }) let n = 0 for (const f of readdirSync(srcDir)) { if (!f.endsWith('.svg')) continue const out = join(outDir, f.replace(/\.svg$/, '.png')) await sharp(join(srcDir, f)).resize({ width }).png().toFile(out) n++ console.log('png:', out) } console.log(`done: ${n} files`)