鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 使用 gulp 壓縮圖片
使用 gulp 構(gòu)建一個(gè)項(xiàng)目
安裝 Node 和 gulp
使用 gulp 壓縮 CSS
使用 gulp 壓縮圖片
使用 gulp 編譯 LESS
使用 gulp 壓縮 JS
使用 gulp 編譯 Sass

使用 gulp 壓縮圖片

請(qǐng)務(wù)必理解如下章節(jié)后閱讀此章節(jié):

  1. 安裝 Node 和 gulp
  2. 使用 gulp 壓縮 JS

壓縮 圖片文件可降低文件大小,提高圖片加載速度。

找到規(guī)律轉(zhuǎn)換為 gulp 代碼

規(guī)律

找到 images/ 目錄下的所有文件,壓縮它們,將壓縮后的文件存放在 dist/images/ 目錄下。

gulp 代碼

你可以 下載所有示例代碼在線查看代碼

一、安裝 gulp-imagemin 模塊

提示:你需要使用命令行的 cd 切換至對(duì)應(yīng)目錄再進(jìn)行安裝操作和 gulp 啟動(dòng)操作。

學(xué)習(xí)使用命令行

在命令行輸入

npm instal gulp-imagemin

安裝成功后你會(huì)看到如下信息:(安裝時(shí)間可能會(huì)比較長)

gulp-imagemin@2.2.1 node_modules/gulp-imagemin
├── object-assign@2.0.0
├── pretty-bytes@1.0.3 (get-stdin@4.0.1)
├── chalk@1.0.0 (escape-string-regexp@1.0.3, ansi-styles@2.0.1, supports-color@1.3.1, has-ansi@1.0.3, strip-ansi@2.0.1)
├── through2-concurrent@0.3.1 (through2@0.6.3)
├── gulp-util@3.0.4 (array-differ@1.0.0, beeper@1.0.0, array-uniq@1.0.2, lodash._reevaluate@3.0.0, lodash._reescape@3.0.0, lodash._reinterpolate@3.0.0, replace-ext@0.0.1, minimist@1.1.1, vinyl@0.4.6, through2@0.6.3, multipipe@0.1.2, lodash.template@3.3.2, dateformat@1.0.11)
└── imagemin@3.1.0 (get-stdin@3.0.2, optional@0.1.3, vinyl@0.4.6, through2@0.6.3, stream-combiner@0.2.1, concat-stream@1.4.7, meow@2.1.0, vinyl-fs@0.3.13, imagemin-svgo@4.1.2, imagemin-optipng@4.2.0, imagemin-jpegtran@4.1.0, imagemin-pngquant@4.0.0, imagemin-gifsicle@4.1.0)

二、創(chuàng)建 gulpfile.js 文件編寫代碼

在對(duì)應(yīng)目錄創(chuàng)建 gulpfile.js 文件并寫入如下內(nèi)容:

// 獲取 gulp
var gulp = require('gulp');

// 獲取 gulp-imagemin 模塊
var imagemin = require('gulp-imagemin')

// 壓縮圖片任務(wù)
// 在命令行輸入 gulp images 啟動(dòng)此任務(wù)
gulp.task('images', function () {
    // 1. 找到圖片
    gulp.src('images/*.*')
    // 2. 壓縮圖片
        .pipe(imagemin({
            progressive: true
        }))
    // 3. 另存圖片
        .pipe(gulp.dest('dist/images'))
});

// 在命令行使用 gulp auto 啟動(dòng)此任務(wù)
gulp.task('auto', function () {
    // 監(jiān)聽文件修改,當(dāng)文件被修改則執(zhí)行 images 任務(wù)
    gulp.watch('images/*.*)', ['images'])
});

// 使用 gulp.task('default') 定義默認(rèn)任務(wù)
// 在命令行使用 gulp 啟動(dòng) images 任務(wù)和 auto 任務(wù)
gulp.task('default', ['images', 'auto'])

你可以訪問 gulp-imagemin 以查看更多用法。


三、在 images/ 目錄下存放圖片

gulpfile.js 對(duì)應(yīng)目錄創(chuàng)建 images 文件夾,并在 images/ 目錄下存放圖片。

你可以訪問 https://github.com/nimojs/gulp-book/tree/master/demo/chapter4/images/ 下載示例圖片


四、運(yùn)行 gulp 查看效果

在命令行輸入 gulp +回車

你將看到命令行出現(xiàn)如下提示

gulp
[18:10:42] Using gulpfile ~/Documents/code/gulp-book/demo/chapter4/gulpfile.js
[18:10:42] Starting 'images'...
[18:10:42] Finished 'images' after 5.72 ms
[18:10:42] Starting 'auto'...
[18:10:42] Finished 'auto' after 6.39 ms
[18:10:42] Starting 'default'...
[18:10:42] Finished 'default' after 5.91 μs
[18:10:42] gulp-imagemin: Minified 3 images (saved 25.83 kB - 5.2%)

訪問論壇獲取幫助