字数统计
1
| npm install hexo-wordcount --save or yarn add hexo-wordcount
|
标签云
1
| npm i hexo-tag-cloud --save
|
图片懒加载
1
| npm install hexo-lazyload-image --save
|
Gulp压缩
Gulp 是一款自动化构建的工具,拥有众多的插件。而我们只需要使用到几个插件来压缩Html/css/js。
1
| npm install --global gulp-cli
|
压缩html
可以使用gulp-htmlclean和gulp-html-minifier-terser来压缩HTML
1 2
| npm install gulp-htmlclean --save-dev npm install --save gulp-html-minifier-terser
|
压缩css
可以使用gulp-clean-css来压缩CSS
1
| npm install gulp-clean-css --save-dev
|
压缩js
由于Butterfly主题中的JS使用到了部分ES6语法,因此不能只使用 gulp-uglify 来压缩,还需要搭配其它的插件。两种方法都可以有效的压缩JS代码,选一种适合自己的就行。
gulp-terser 是直接压缩 js 代码,不会进行转换
gulp-babel是一个JavaScript转换编译器,可以把ES6转换成ES5
gulp-terser
1
| npm install gulp-terser --save-dev
|
gulp-uglify + gulp-babel
1 2
| npm install --save-dev gulp-uglify npm install --save-dev gulp-babel @babel/core @babel/preset-env
|
压缩图片
1
| npm install --save-dev gulp-imagemin
|
gulp-创建 gulpfile 文件
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 62 63 64 65 66 67 68 69 70 71 72 73 74
| const gulp = require('gulp') const cleanCSS = require('gulp-clean-css') const htmlmin = require('gulp-html-minifier-terser') const htmlclean = require('gulp-htmlclean') const imagemin = require('gulp-imagemin')
const uglify = require('gulp-uglify') const babel = require('gulp-babel')
gulp.task('compress', () => gulp.src(['./public/**/*.js', '!./public/**/*.min.js']) .pipe(babel({ presets: ['@babel/preset-env'] })) .pipe(uglify().on('error', function (e) { console.log(e) })) .pipe(gulp.dest('./public')) )
gulp.task('minify-css', () => { return gulp.src('./public/**/*.css') .pipe(cleanCSS()) .pipe(gulp.dest('./public')) })
gulp.task('minify-html', () => { return gulp.src('./public/**/*.html') .pipe(htmlclean()) .pipe(htmlmin({ removeComments: true, collapseWhitespace: true, collapseBooleanAttributes: true, removeEmptyAttributes: true, removeScriptTypeAttributes: true, removeStyleLinkTypeAttributes: true, minifyJS: true, minifyCSS: true, minifyURLs: true })) .pipe(gulp.dest('./public')) })
gulp.task('minify-images', async () => { gulp.src('./public/img/**/*.*') .pipe(imagemin({ optimizationLevel: 5, progressive: true, interlaced: false, multipass: false })) .pipe(gulp.dest('./public/img')) })
gulp.task('default', gulp.parallel( 'compress', 'minify-css', 'minify-html', 'minify-images' ))
|
运行
在hexo g之后运行gulp就行。