一個簡易的gulp例子

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

gulpfile.js

定義gulp所有的任務

安裝需要的插件

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');

// 給每個文件添加版本號(在文件后面加上哈希碼,當文件改變時更改哈希碼,內容一樣的文件哈希碼一樣(即使修改時間不一樣))
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恢復)
var filter = require('gulp-filter');

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

// 定義一個任務
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表示已經結束,將文件流扔入到'dist目錄下'
        .pipe(gulp.dest('dist'));
});

注:

  *
  */```

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

### 其他插件
1. gulp-watch 
 監聽文件的改變,自動執行任務,當js文件改變時自動打包
2. gulp-postcss
 與autoprefixer插件相結合,自動給css屬性添加前綴
3. gulp-concat
 可以將很多文件合并成一個文件
4. gulp-responsive
 可以生成一系列的響應式圖片
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在現在的前端開發中,前后端分離、模塊化開發、版本控制、文件合并與壓縮、mock數據等等一些原本后端的思想開始...
    Charlot閱讀 5,504評論 1 32
  • gulpjs是一個前端構建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數,API也非常簡單,學...
    依依玖玥閱讀 3,192評論 7 55
  • gulpjs是一個前端構建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數,API也非常簡單,學...
    井皮皮閱讀 1,325評論 0 10
  • 1、gulp的安裝 首先確保你已經正確安裝了nodejs環境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,406評論 1 11
  • 1.昨天去珠心算面試了,初來廣州,很多管理方面的東西都不完善,但是可以和一家初創公司一起成長,倒是一件很有意思很好...
    鈴鐺風聆閱讀 277評論 0 0