const fs = require('fs'); const path = require('path'); const imagemin = require('imagemin'); const imageminPngquant = require('imagemin-pngquant'); // 源目录和目标目录 const srcDir = path.join(__dirname, 'src', 'assets'); const destDir = path.join(__dirname, 'src', 'assets'); // 直接覆盖原文件 // 优化PNG图片的函数 async function optimizePng() { try { console.log('开始优化PNG图片...'); // 读取源目录下的所有PNG图片 const files = await imagemin([`${srcDir}/*.png`], { destination: destDir, plugins: [ imageminPngquant({ quality: [0.6, 0.8] // 质量范围 }) ] }); console.log('PNG图片优化完成!'); console.log('优化的文件:'); // 计算并显示优化前后的文件大小对比 for (const file of files) { const srcPath = path.join(srcDir, path.basename(file.sourcePath)); const destPath = file.destinationPath; const srcStats = fs.statSync(srcPath); const destStats = fs.statSync(destPath); const srcSize = srcStats.size; const destSize = destStats.size; const reduction = ((srcSize - destSize) / srcSize * 100).toFixed(2); console.log(`${path.basename(file.sourcePath)}: ${(srcSize / 1024).toFixed(2)}KB → ${(destSize / 1024).toFixed(2)}KB (减少${reduction}%)`); } } catch (error) { console.error('优化PNG图片时出错:', error); } } // 执行优化 optimizePng();