Hexo优化-静态资源压缩

This is the programmer's leisure time series!

通过压缩html,css,js等静态资源,可以减少请求的数据量从而达到优化hexo访问速度的目的,这里主要用到gulp和一些相关的插件来实现。
gulp是一个基于Node.js的自动化构建工具,我们可以通过一些gulp插件实现对html,css,js等静态资源的高效压缩。


一. 安装gulp.

首先在hexo安装目录下安装gulp,假定hexo安装目录为 Documents/hexo

1. 输入下面的命令进入hexo安装目录.

    $ cd ~/Documents/hexo

PS:后面的操作都是在该目录下进行

2. 在hexo目录下安装gulp.

    $ npm install gulp -g

二. 安装gulp插件.

1. 这里需要用到的插件有:

gulp-minify-css 压缩css
gulp-uglify 混淆js
gulp-htmlmin 压缩html
gulp-htmlclean 清理html
gulp-imagemin 压缩图片

    $ npm install gulp-minify-css --save
    $ npm install gulp-uglify --save
    $ npm install gulp-htmlmin --save
    $ npm install gulp-htmlclean --save
    $ npm install gulp-imagemin --save

三. 配置gulp.

1. 在hexo根目录添加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');

  // 压缩css文件
  gulp.task('minify-css', function() {
    return gulp.src('./public/**/*.css')
      .pipe(minifycss())
      .pipe(gulp.dest('./public'));
  });

  // 压缩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'))
  });

  // 压缩js文件
  gulp.task('minify-js', function() {
    return gulp.src('./public/**/*.js')
      .pipe(uglify())
      .pipe(gulp.dest('./public'));
  });

  // 压缩 public/images 目录内图片
  gulp.task('minify-images', function() {
    gulp.src('./public/images/**/*.*')
      .pipe(imagemin({
        optimizationLevel: 5, //类型:Number  默认:3  取值范围:0-7(优化等级)
        progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
        interlaced: false, //类型:Boolean 默认:false 隔行扫描gif进行渲染
        multipass: false, //类型:Boolean 默认:false 多次优化svg直到完全优化
      }))
      .pipe(gulp.dest('./public/images'));
  });

  // 默认任务
  gulp.task('default', [
    'minify-html', 'minify-css', 'minify-js', 'minify-images'
  ]);

2. 到这里对gulp的配置就完成了,只需要每次在执行generate命令后执行gulp就可以实现对静态资源的压缩,压缩完成后执行deploy命令同步到服务器

    $ hexo clean
    $ hexo generate
    $ gulp
    $ hexo deploy

😍😜☕


_END._🍻

Show Comments

Get the latest posts delivered right to your inbox.