Skip to content
This repository was archived by the owner on Nov 14, 2024. It is now read-only.

Commit 4cb9330

Browse files
imklaujedrzejchalubek
authored andcommitted
build(): Better image compression settings & introduce svgs optimization (#16)
* Use imagemin-mozjpeg plugin for better jpeg compression * Increase png compression * Introduce new task for svg optimization
1 parent 4bd515c commit 4cb9330

5 files changed

Lines changed: 48 additions & 2 deletions

File tree

build/build.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ gulp.task('font:build', require('./tasks/font/build'))
4444
gulp.task('image:clean', require('./tasks/image/clean'))
4545
gulp.task('image:build', require('./tasks/image/build'))
4646

47+
/*
48+
|--------------------------------------------------------------------------
49+
| Svg Tasks
50+
|--------------------------------------------------------------------------
51+
*/
52+
gulp.task('svg:build', require('./tasks/svg/build'))
53+
4754
/*
4855
|--------------------------------------------------------------------------
4956
| JavaScript Tasks
@@ -65,6 +72,7 @@ gulp.task('javascript:build', ['javascript:clean'], require('./tasks/javascript/
6572
gulp.task('html', ['html:clean', 'html:build'])
6673
gulp.task('font', ['font:clean', 'font:build'])
6774
gulp.task('image', ['image:clean', 'image:build'])
75+
gulp.task('svg', ['svg:build'])
6876
gulp.task('sass', ['sass:clean', 'sass:lint', 'sass:build'])
6977
gulp.task('javascript', ['javascript:clean', 'javascript:lint', 'javascript:build'])
7078

@@ -108,6 +116,9 @@ gulp.task('watch', ['sync'], () => {
108116
gulp.watch('resources/assets/images/**/*.{jpg,jpeg,png,gif,svg}', { cwd: '../' }, ['image', reload])
109117
.on('error', message.error('WATCH: Images'))
110118

119+
gulp.watch('src/svg/**/*.svg', { cwd: '../' }, ['svg', reload])
120+
.on('error', message.error('WATCH: SVG'))
121+
111122
gulp.watch(['src/**/*.html', 'resources/json/**/*.json'], { cwd: '../' }, ['html', reload])
112123
.on('error', message.error('WATCH: Views'))
113124
})
@@ -122,4 +133,4 @@ gulp.task('watch', ['sync'], () => {
122133
| tasks and completely building the whole project.
123134
|
124135
*/
125-
gulp.task('default', ['sass', 'javascript', 'font', 'image', 'html'])
136+
gulp.task('default', ['sass', 'javascript', 'font', 'image', 'svg', 'html'])

build/tasks/image/build.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@ const isdev = require('isdev')
33
const gulp = require('gulp')
44
const gulpif = require('gulp-if')
55
const imagemin = require('gulp-imagemin')
6+
const imageminMozjpeg = require('imagemin-mozjpeg')
7+
const imageminPngquant = require('imagemin-pngquant')
68

79
const message = require('../../lib/message')
810

911
module.exports = () => {
1012
return gulp.src('../resources/assets/images/**/*.{jpg,jpeg,png,gif,svg}')
11-
.pipe(gulpif(!isdev, imagemin()))
13+
.pipe(gulpif(!isdev, imagemin([
14+
imageminMozjpeg({quality: 74}),
15+
imageminPngquant()
16+
], {
17+
verbose: true
18+
})))
1219
.on('error', message.error('IMAGE: Minification'))
1320
.pipe(gulp.dest('../public/images'))
1421
}

build/tasks/svg/build.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const gulp = require('gulp')
2+
const svgmin = require('gulp-svgmin')
3+
4+
const message = require('../../lib/message')
5+
6+
module.exports = () => {
7+
return gulp.src('../src/svg/**/*.svg')
8+
.pipe(svgmin({
9+
plugins: [{
10+
removeViewBox: false
11+
}, {
12+
removeComments: false
13+
}, {
14+
cleanupNumericValues: {
15+
floatPrecision: 2
16+
}
17+
}],
18+
js2svg: {
19+
pretty: true
20+
}
21+
}))
22+
.on('error', message.error('SVG: Optimization'))
23+
.pipe(gulp.dest('../src/svg'))
24+
}

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
"gulp-sass": "^3.1.0",
4545
"gulp-stylelint": "^5.0.0",
4646
"gulp-uglify": "^3.0.0",
47+
"gulp-svgmin": "^2.2.0",
48+
"imagemin-mozjpeg": "^8.0.0",
49+
"imagemin-pngquant": "^7.0.0",
4750
"isdev": "^1.0.1",
4851
"rollup-plugin-babel": "^3.0.2",
4952
"rollup-plugin-commonjs": "^8.2.1",

src/svg/.gitkeep

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)