-
Notifications
You must be signed in to change notification settings - Fork 1
/
imagemin.js
61 lines (54 loc) · 1.54 KB
/
imagemin.js
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
49
50
51
52
53
54
55
56
57
58
59
60
61
const imagemin = require('imagemin');
const PNGImages = 'src/images/**/*.png';
const JPEGImages = 'src/images/**/*.{jpg,jpeg,JPG,JPEG}';
const GIFImages = 'src/images/**/*.gif';
const output = 'images';
const imageminJpegtran = require('imagemin-jpegtran');
const imageminJpegoptim = require('imagemin-jpegoptim');
const imageminOptipng = require('imagemin-optipng');
const imageminPngcrush = require('imagemin-pngcrush');
const imageminPngout = require('imagemin-pngout');
const imageminZopfli = require('imagemin-zopfli');
const imageminGifsicle = require('imagemin-gifsicle');
const optimiseJPEGImages = () =>
imagemin([JPEGImages], {
destination: output,
plugins: [
imageminJpegoptim(),
imageminJpegtran(),
]
});
const optimisePNGImages = () =>
imagemin([PNGImages], {
destination: output,
plugins: [
imageminOptipng(),
imageminPngcrush({
reduce: true,
}),
imageminPngout(),
imageminZopfli(),
]
});
const optimiseGIFImages = () =>
imagemin([GIFImages], {
destination: output,
plugins: [
imageminGifsicle(),
]
});
// (async () => {
// const files = await imagemin([PNGImages], {
// destination: output,
// plugins: [imageminOptipng(), imageminPngcrush({reduce: true,}), imageminPngout(), imageminZopfli()]
// });
//
// console.log(files);
// })();
(async () => {
const files = await optimisePNGImages()
.then(() => optimiseJPEGImages())
.then(() => optimiseGIFImages())
.catch(error => console.log(error));
console.log(files);
})();