最新版公众号前端
This commit is contained in:
49
optimize-png.js
Normal file
49
optimize-png.js
Normal file
@@ -0,0 +1,49 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user