Files
huangguo_landpage/convertToWebp.js
T
2026-09-15 16:25:45 +07:00

32 lines
1.1 KiB
JavaScript

import fs from 'fs/promises';
import path from 'path';
import sharp from 'sharp';
const imgDir = path.join(process.cwd(), 'src/assets/image'); // 图片根目录
const imgTypes = ['.png', '.jpg', '.jpeg', '.gif']; // 支持的图片类型
async function convertImagesToWebp(dir) {
try {
const files = await fs.readdir(dir);
for (const file of files) {
const filePath = path.join(dir, file);
const extname = path.extname(filePath);
const itemInfo = await fs.stat(filePath);
if (itemInfo.isFile() && imgTypes.includes(extname)) {
const outputFilePath = path.join(dir, `${path.basename(file, extname)}.webp`);
await sharp(filePath)
.webp({ quality: 80 }) // 调整质量
.toFile(outputFilePath);
console.log(`Converted: ${filePath} to ${outputFilePath}`);
} else if (itemInfo.isDirectory()) {
await convertImagesToWebp(filePath); // 递归处理子目录
}
}
} catch (error) {
console.error('Error:', error);
}
}
convertImagesToWebp(imgDir);