一個簡易的gulp例子

gulp不僅僅是打包,可以優(yōu)化前端的流程,(webpack打包優(yōu)于gulp)

gulpfile.js

定義gulp所有的任務(wù)

安裝需要的插件

npm install gulp-rev gulp-rev-replace gulp-useref gulp-filter gulp-uglify gulp-csso --save-dev

  • gulp-rev
  • gulp-rev-replace
  • gulp-useref
    通過注釋的方式告訴gulp合并文件


    gulp-useref 合并文件
  • gulp-filter
  • gulp-uglify
  • gulp-csso

簡單的栗子

gulpfile.js文件
/**
 *首先加載要依賴的加載項
 */
var gulp = require('gulp');

// 給每個文件添加版本號(在文件后面加上哈希碼抚官,當文件改變時更改哈希碼扬跋,內(nèi)容一樣的文件哈希碼一樣(即使修改時間不一樣))
var rev = require('gulp-rev');

// 將文件里面的引用改成新的
var revReplace = require('gulp-rev-replace');

// 通過注釋的方式告訴gulp合并文件 地址:https://www.npmjs.com/package/gulp-useref
var useref = require('gulp-useref');

// 過濾器 (篩選、restore恢復(fù))
var filter = require('gulp-filter');

// 壓縮js文件
var uglify = require('gulp-uglify');
// 壓縮css文件
var csso = require('gulp-csso');
/* end */

// 定義一個任務(wù)
gulp.task('default', function () {
    var jsFilter = filter('**/*.js', {restore: true});
    var cssFilter = filter('**/*.css', {restore: true});
    // 排除首頁凌节,保證首頁名字不變
    var indexHtmlFilter = filter(['**/*', '!**/index.html'], {restore: true});

    // 每個pipe處理就像是一個過濾器胁住,對這個文件流進行處理
    return gulp.src('src/index.html')
        // 分析帶有useref注釋的語句趁猴,將包括的js、css文件放進文件流
        .pipe(useref())
        // 將js文件篩選出來
        .pipe(jsFilter)
        // 將js文件進行壓縮
        .pipe(uglify())
        // 通過restore將js文件重新扔回文件流里面
        .pipe(jsFilter.restore)

        // css文件處理
        .pipe(cssFilter)
        .pipe(csso())
        .pipe(cssFilter.restore)

        // 給文件添加版本號
        .pipe(indexHtmlFilter)
        .pipe(rev())
        .pipe(indexHtmlFilter.restore)
        // 更新文件里的引用
        .pipe(revReplace())

        // dest表示已經(jīng)結(jié)束彪见,將文件流扔入到'dist目錄下'
        .pipe(gulp.dest('dist'));
});

注:

  *
  */```

```/*! 壓縮時不會被省略掉
  *
  */```

### 其他插件
1. gulp-watch 
 監(jiān)聽文件的改變儡司,自動執(zhí)行任務(wù),當js文件改變時自動打包
2. gulp-postcss
 與autoprefixer插件相結(jié)合余指,自動給css屬性添加前綴
3. gulp-concat
 可以將很多文件合并成一個文件
4. gulp-responsive
 可以生成一系列的響應(yīng)式圖片
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捕犬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子酵镜,更是在濱河造成了極大的恐慌碉碉,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淮韭,死亡現(xiàn)場離奇詭異垢粮,居然都是意外死亡,警方通過查閱死者的電腦和手機靠粪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門蜡吧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人占键,你說我怎么就攤上這事昔善。” “怎么了畔乙?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵君仆,是天一觀的道長。 經(jīng)常有香客問我牲距,道長返咱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任牍鞠,我火速辦了婚禮洛姑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皮服。我一直安慰自己,他們只是感情好参咙,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布龄广。 她就那樣靜靜地躺著,像睡著了一般蕴侧。 火紅的嫁衣襯著肌膚如雪择同。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天净宵,我揣著相機與錄音敲才,去河邊找鬼裹纳。 笑死,一個胖子當著我的面吹牛紧武,可吹牛的內(nèi)容都是我干的剃氧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼阻星,長吁一口氣:“原來是場噩夢啊……” “哼朋鞍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妥箕,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滥酥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后畦幢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坎吻,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年宇葱,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘦真。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡贝搁,死狀恐怖吗氏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雷逆,我是刑警寧澤弦讽,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站膀哲,受9級特大地震影響往产,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜某宪,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一仿村、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兴喂,春花似錦蔼囊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壶谒,卻和暖如春云矫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汗菜。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工让禀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挑社,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓巡揍,卻偏偏與公主長得像痛阻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吼肥,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 在現(xiàn)在的前端開發(fā)中录平,前后端分離、模塊化開發(fā)缀皱、版本控制斗这、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,448評論 1 32
  • gulpjs是一個前端構(gòu)建工具啤斗,與gruntjs相比表箭,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡單钮莲,學(xué)...
    依依玖玥閱讀 3,157評論 7 55
  • gulpjs是一個前端構(gòu)建工具荧止,與gruntjs相比怔鳖,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡單,學(xué)...
    井皮皮閱讀 1,305評論 0 10
  • 1偷线、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境似扔。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,384評論 1 11
  • 1.昨天去珠心算面試了蒲凶,初來廣州熟妓,很多管理方面的東西都不完善,但是可以和一家初創(chuàng)公司一起成長慈俯,倒是一件很有意思很好...
    鈴鐺風(fēng)聆閱讀 273評論 0 0