本文摘自,枫頔:https://www.jianshu.com/p/93b63852f0b3(感谢)
静态资源压缩可以优化网页的访问速度、提高用户体验。
gulp压缩
如果你打开生成的public文件夹里面的html
、css
、js
源文件,你就会发现里面有大段的空白,这些空白占据着一定的空间。gulp是一个基于Node.js的自动化构建工具,我们可以通过一些gulp插件实现对html
、css
、js
、image
等静态资源的高效压缩,通过压缩这些静态资源,可以减少请求的数据量从而达到优化博客访问速度的目的。
安装依赖
首先安装gulp,执行以下命令:
npm insatll gulp -g
要实现gulp压缩需要安装以下五个模块:
- gulp-htmlclean:清理html
- gulp-htmlmin:压缩html
- gulp-minify-css:压缩css
- gulp-uglify:混淆js
- gulp-imagemin:压缩图片
安装模块:在博客根目录下打开git bash
npm install gulp-htmlclean gulp-htmlmin gulp-minify-css gulp-uglify gulp-imagemin --save
安装的模块可以在根目录下的package.json
文件里面看到。
"gulp": "^3.9.1",
"gulp-htmlclean": "^2.7.14",
"gulp-htmlmin": "^3.0.0",
"gulp-imagemin": "^3.3.0",
"gulp-minify-css": "^1.2.4",
"gulp-uglify": "^3.0.0",
添加gulpfile.js
进入博客根目录,新建gulpfile.js
文件,内容如下:
var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var htmlmin = require('gulp-htmlmin');
var htmlclean = require('gulp-htmlclean');
var imagemin = require('gulp-imagemin');
// 压缩html
gulp.task('minify-html', function() {
return gulp.src('./public/**/*.html')
.pipe(htmlclean())
.pipe(htmlmin({
removeComments: true,
minifyJS: true,
minifyCSS: true,
minifyURLs: true,
}))
.pipe(gulp.dest('./public'))
});
// 压缩css
gulp.task('minify-css', function() {
return gulp.src('./public/**/*.css')
.pipe(minifycss({
compatibility: 'ie8'
}))
.pipe(gulp.dest('./public'));
});
// 压缩js
gulp.task('minify-js', function() {
return gulp.src('./public/js/**/*.js')
.pipe(uglify())
.pipe(gulp.dest('./public'));
});
// 压缩图片
gulp.task('minify-images', function() {
return gulp.src('./public/images/**/*.*')
.pipe(imagemin(
[imagemin.gifsicle({'optimizationLevel': 3}),
imagemin.jpegtran({'progressive': true}),
imagemin.optipng({'optimizationLevel': 7}),
imagemin.svgo()],
{'verbose': true}))
.pipe(gulp.dest('./public/images'))
});
// 默认任务
gulp.task('default', [
'minify-html','minify-css','minify-js','minify-images'
]);
执行压缩
hexo g
gulp // 执行压缩,两条命令可以合并:hexo g && gulp
然后就可以执行部署命令:
hexo d