前端自動(dòng)化Gulp工具常用插件

上一節(jié)講到了Gulp的入門使用,那么這一節(jié)我們會(huì)講一些常見插件的使用。

npm init命令初始化當(dāng)前文件夾后,在當(dāng)前文件夾新建gulpfile.js文件。當(dāng)前目錄下的所有操作流都在gulpfile.js文件中定義。

gulp自動(dòng)化

gulp-uglify (JS壓縮)


gulp-uglify安裝:

npm install --save-dev gulp-uglify

gulp-uglify用來(lái)壓縮js文件,使用的是uglify引擎。

var gulp = require('gulp');  //加載gulp
var uglify = require('gulp-uglify');  //加載js壓縮

// 定義一個(gè)任務(wù) compass
gulp.task('compass', function () {
    gulp.src(['js/*.js','!js/*.min.js'])  //獲取文件,同時(shí)過濾掉.min.js文件
        .pipe(uglify())
        .pipe(gulp.dest('javascript/'));  //輸出文件
});

小技巧,第二個(gè)參數(shù)'!js/*.min.js'是用來(lái)過濾掉后綴為min.js,!感嘆號(hào)為排除模式。

gulp-minify-css(CSS壓縮)


gulp-minify-css安裝:

npm install --save-dev gulp-minify-css

可以使用它來(lái)壓縮CSS文件

var gulp = require('gulp');
var minify = require('gulp-minify-css');

gulp.task('cssmini', function () {
    gulp.src(['css/*.css', '!css/*.min.css'])  //要壓縮的css
        .pipe(minify())
        .pipe(gulp.dest('buildcss/'));
});

gulp-minify-html(html壓縮)


gulp-minify-html安裝:

npm install --save-dev gulp-minify-html

可以使用它來(lái)壓縮html文件.

var gulp = require('gulp');
var htmlmini = require('gulp-minify-html');

gulp.task('htmlmini', function () {
    gulp.src('*.html')
        .pipe(htmlmini())
        .pipe(gulp.dest('minihtml'));
})

gulp-jshint(JS代碼檢查)


gulp-jshint安裝:

// npm install --save-dev gulp-jshint 已過時(shí)
npm install --save-dev jshint gulp-jshint

可以用來(lái)檢查JS的代碼

var gulp = require('gulp');
var jshint = require("gulp-jshint");
 
gulp.task('jsLint', function () {
    gulp.src('js/*.js')
    .pipe(jshint())
    .pipe(jshint.reporter()); // 輸出檢查結(jié)果
});

gulp-concat(文件合并)


gulp-concat安裝:

npm install --save-dev gulp-concat

合并CSS與JS文件,減少http請(qǐng)求。

var gulp = require('gulp');
var concat = require("gulp-concat");
 
gulp.task('concat', function () {
    gulp.src('js/*.js')  //要合并的文件
    .pipe(concat('all.js'))  // 合并匹配到的js文件并命名為 "all.js"
    .pipe(gulp.dest('dist/js'));
});

gulp-less(編譯Less)


gulp-less安裝:

npm install --save-dev gulp-less

把less文件轉(zhuǎn)換為css。

var gulp = require('gulp'),
    less = require("gulp-less");
 
gulp.task('compile-less', function () {
    gulp.src('less/*.less')
    .pipe(less())
    .pipe(gulp.dest('dist/css'));
});

gulp-sass(編譯Sass)


gulp-sass安裝:

npm install --save-dev gulp-sass

把scss文件轉(zhuǎn)換為sass文件。

var gulp = require('gulp'),
    sass = require("gulp-sass");
 
gulp.task('compile-sass', function () {
    gulp.src('sass/*.sass')
    .pipe(sass())
    .pipe(gulp.dest('dist/css'));
});

gulp-imagemin(壓縮圖片)


gulp-imagemin安裝:

npm install --save-dev gulp-imagemin

可以使用gulp-imagemin的插件來(lái)壓縮jpg、png、gif等圖片。(imagemin也是有插件的,是基于imagemin產(chǎn)生的插件,所以前綴是imagenin開頭)

壓縮png插件-imagemin-pngquant安裝:

$npminstall--save-devimagemin-pngquant

gulpfile.js:

var gulp = require('gulp');
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant'); //png圖片壓縮插件

gulp.task('default', function () {
    return gulp.src('src/images/*')
        .pipe(imagemin({
            progressive: true,
            use: [pngquant()] //使用pngquant來(lái)壓縮png圖片
        }))
        .pipe(gulp.dest('dist'));
});

gulp-imagemin的使用比較復(fù)雜一點(diǎn),它本身也有很多插件(更多imagemin插件),這里只是簡(jiǎn)單介紹一下,要想壓縮不同格式的圖片,必須對(duì)應(yīng)安裝不同的插件,這里只安裝了pngquant插件。按照nodejs的模塊化思想,每個(gè)require只包含一個(gè)功能,這樣就可以達(dá)到按需加載的目的。

gulp-livereload(自動(dòng)刷新)


gulp-livereload安裝:

npm install --save-dev gulp-livereload

當(dāng)代碼變化時(shí),它可以幫助我們自動(dòng)刷新頁(yè)面,該插件最好配合谷歌瀏覽器,且要安裝livereload chrome extension擴(kuò)展插件,否則無(wú)效。

var gulp = require('gulp'),
    less = require('gulp-less'),
    livereload = require('gulp-livereload');

gulp.task('less', function() {
  gulp.src('less/*.less')
    .pipe(less())
    .pipe(gulp.dest('css'))
    .pipe(livereload());
});

gulp.task('watch', function() {
  livereload.listen(); //要在這里調(diào)用listen()方法
  gulp.watch('less/*.less', ['less']);  //監(jiān)聽目錄下的文件,若文件發(fā)生變化,則調(diào)用less任務(wù)。
});

結(jié)語(yǔ)

gulp插件基本介紹到這里結(jié)束了,每個(gè)插件的具體用法還需要大家去探索,細(xì)節(jié)問題會(huì)比較多,遇到問題時(shí)最好能去看下英文的API手冊(cè),這樣使用起來(lái)更加方便。有什么遺漏或錯(cuò)誤,請(qǐng)多指教。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無(wú)需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)...
    依依玖玥閱讀 3,304評(píng)論 7 55
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無(wú)需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)...
    小裁縫sun閱讀 1,030評(píng)論 0 3
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無(wú)需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)...
    井皮皮閱讀 1,401評(píng)論 0 10
  • 前言 本文默認(rèn)你已經(jīng)安裝好node環(huán)境,并且熟悉node命令,和window cd命令。 gulp簡(jiǎn)介 基于nod...
    9I閱讀 2,041評(píng)論 4 50
  • 什么是GULP? GULP 是前端開發(fā)過程中對(duì)代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器;她不僅能 對(duì)...
    碧玉含香閱讀 709評(píng)論 0 0

友情鏈接更多精彩內(nèi)容