Gulp Modules
Build a Gulp pipeline resource that will minify the resources in our app to their smallest footprint possible.
JS Optimization Steps:
- Concat and minify CSS pf JS libraries
- Add HTML with new CSS file
Module Name | Module Keyword | Role |
---|---|---|
Basic Gulp Script | ‘gulp’ | Basic definitions. |
Concat Module | ‘gulp-concat’ | Combine CSS files. |
Clean CSS Module | ‘gulp-clean-css’ | Minify CSS, combine media queries, removes useless code. |
Inline Source Module | ‘gulp-inline-source’ | Adds AtF necessary inline CSS. |
Uglify Module | ‘gulp-uglify’ | Minify JavaScript code. |
Rename Module | ‘gulp-rename’ | Add suffix ‘min’ to JS file names. |
Pump Module | ‘pump’ | Pipes streams together and destroys all of them if one of them closes. |
HTML Min Module | ‘gulp-htmlmin’ | Minify HTML code. |
GZip Module | ‘gulp-gzip’ | Optional: GZip all files. |
To unminify a certain minified CSS file, run the following script:
> cssunminifier prod.min.css
Gulp: JavaScript Optimization file
var gulp = require('gulp');
var concat = require('gulp-concat');
var cleanCSS = require('gulp-clean-css');
var inlinesource = require('gulp-inline-source');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var pump = require('pump');
var htmlmin = require('gulp-htmlmin');
var gzip = require('gulp-gzip');
gulp.task('compress-css', function() {
return gulp.src(['./src/css/pikaday.css', './src/css/theme.css'])
.pipe(cleanCSS({
level: {
1: {},
2: {}
}
}))
.pipe(concat('date-picker.min.css'))
.pipe(gzip())
.pipe(gulp.dest('./dist/css'));
});
gulp.task('inlinesource', function () {
return gulp.src('./src/index.html')
.pipe(inlinesource())
.pipe(htmlmin({collapseWhitespace: true}))
.pipe(gulp.dest('./dist'));
});
gulp.task('compress-js', function (cb) {
pump([
gulp.src('./src/js/*.js'),
uglify(),
rename({ suffix: '.min' }),
gzip(),
gulp.dest('./dist/js')
],
cb
);
});
gulp.task('default', ['compress-css', 'compress-js', 'inlinesource']);