-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresize-all.js
More file actions
48 lines (42 loc) · 1.55 KB
/
resize-all.js
File metadata and controls
48 lines (42 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { promises as fs } from 'fs'
import path from 'path'
import sharp from 'sharp'
const images = [
{
input: 'public/assets/cars-pat/mockup-Cars-Pat-Accueil.webp',
output: 'public/assets/cars-pat/mockup-Cars-Pat-Accueil-small.webp',
quality: 40, // 🔽 baisse qualité pour tomber sous les 5–6 Ko
},
{
input: 'public/assets/learn-qwik/mockup-Learn-Qwik-Accueil.webp',
output: 'public/assets/learn-qwik/mockup-Learn-Qwik-Accueil-small.webp',
quality: 55,
},
{
input: 'public/assets/paquerette-cactus/mockup-Paquerette-Cactus-Accueil.webp',
output: 'public/assets/paquerette-cactus/mockup-Paquerette-Cactus-Accueil-small.webp',
quality: 55,
},
{
input: 'public/assets/tryade-dashboard/Tryade-Dashboard-Home.webp',
output: 'public/assets/tryade-dashboard/Tryade-Dashboard-Home-small.webp',
quality: 55,
},
]
async function resizeAll() {
for (const { input, output, quality } of images) {
try {
await fs.access(input)
await sharp(input)
.resize(480) // largeur cible (encore mieux que 600px pour mobile)
.webp({ quality }) // qualité variable
.toFile(output)
const { size } = await fs.stat(output)
const sizeKb = (size / 1024).toFixed(1)
console.log(`✅ ${path.basename(output)} générée : ${sizeKb} Ko`)
} catch (err) {
console.error(`❌ Erreur avec ${input} : ${err.message}`)
}
}
}
resizeAll()