最新版公众号前端
This commit is contained in:
51
verify-optimization.js
Normal file
51
verify-optimization.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// 源图片目录和构建后的图片目录
|
||||
const srcDir = path.join(__dirname, 'src', 'assets');
|
||||
const distDir = path.join(__dirname, 'dist', 'img');
|
||||
|
||||
// 比较源图片和构建后图片的大小
|
||||
function compareImageSizes() {
|
||||
try {
|
||||
// 读取dist目录下的所有图片文件
|
||||
const distFiles = fs.readdirSync(distDir).filter(file => file.endsWith('.png'));
|
||||
|
||||
console.log('图片优化效果验证(源图片 vs 构建后图片):');
|
||||
console.log('-' .repeat(70));
|
||||
console.log('源文件名'.padEnd(25), '构建后文件名'.padEnd(30), '大小对比');
|
||||
console.log('-' .repeat(70));
|
||||
|
||||
// 遍历dist目录下的图片文件
|
||||
for (const distFile of distFiles) {
|
||||
// 提取源文件名(去掉hash和扩展名)
|
||||
const srcFileName = distFile.replace(/\.[a-f0-9]{8}\.png$/, '.png');
|
||||
const srcPath = path.join(srcDir, srcFileName);
|
||||
const distPath = path.join(distDir, distFile);
|
||||
|
||||
// 检查源文件是否存在
|
||||
if (fs.existsSync(srcPath)) {
|
||||
const srcStats = fs.statSync(srcPath);
|
||||
const distStats = fs.statSync(distPath);
|
||||
|
||||
const srcSize = srcStats.size;
|
||||
const distSize = distStats.size;
|
||||
const reduction = ((srcSize - distSize) / srcSize * 100).toFixed(2);
|
||||
|
||||
console.log(
|
||||
srcFileName.padEnd(25),
|
||||
distFile.padEnd(30),
|
||||
`${(srcSize / 1024).toFixed(2)}KB → ${(distSize / 1024).toFixed(2)}KB (减少${reduction}%)`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('-' .repeat(70));
|
||||
|
||||
} catch (error) {
|
||||
console.error('验证图片优化效果时出错:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// 执行验证
|
||||
compareImageSizes();
|
||||
Reference in New Issue
Block a user