gulp入門篇(一)

1.gulp簡介:

  gulp是一個前端自動化的工具【構建工具】,使用流(stream)來處理內容。

2. gulp的主要用於:

搭建web服務器

使用預處理器Sass,Less

壓縮優化資源,可以壓縮JS CSS Html 圖片

自動將更新變化的代碼實時顯示在瀏覽器【前端實時化】

gulp還提供瞭豐富的插件,可自行查詢……

3. gulp使用的前提

安裝node.js

在項目根目錄下執行 npm init  創建package.json.

npm install gulp -g //全局安裝

npm install gulp –save-dev //本地安裝並加入package.json

推薦:第2種,安裝gulp模塊,並且添加依賴到package.json文件。

4.gulp常見的api

gulp.src() : 獲得資源

gulp.dest(): 輸出資源

gulp.task():創建任務

gulp.watch():監視文件系統,文件改動時自動處理

gulp.pipe():管道

5.gulp使用說明

  默認情況下 gulp 運行的時候會引入項目目錄下的 gulpfile.js 文件

  在根目錄下創建gulpfile.js

在gulpfile.js文件中編寫gulp任務代碼.

gulpfile.js:

var gulp = require('gulp'),
    browserSync = require('browser-sync').create(),
    uglify = require('gulp-uglify'), //壓縮js代碼
    minifycss = require('gulp-minify-css'), //壓縮css代碼
    rename = require('gulp-rename'), //重命名
    clen = require('gulp-clean'); //清理檔案


//靜態服務器
gulp.task('server', function() {
    browserSync.init({   //服務器配置
        server: {
            baseDir: "./"
        }
    });
    //監控文件變化,保存時自動刷新瀏覽器.
    gulp.watch("*.html").on('change', browserSync.reload);
    gulp.watch("dist/js/*.js", ['js-watch']);
    gulp.watch("dist/css/*.css", ['css']);
});

//處理css代碼的任務
gulp.task('css',['clean'],function(){
  return gulp.src('dist/css/*.css')
  .pipe(minifycss())
  .pipe(rename('index.min.css'))
  .pipe(gulp.dest('src/css'))
  .pipe(browserSync.stream()); //css代碼變化時刷新的寫法1
  //pipe(browserSync.reload({stream:true}))//寫法2
});

//js代碼的處理
gulp.task('js',['clean'],function(){
  return gulp.src('dist/js/*.js')
    .pipe(uglify()) 
    .pipe(rename('index.min.js'))
    .pipe(gulp.dest('src/js'));
});

//監視js代碼的變化
gulp.task('js-watch', ['js'], browserSync.reload);

//gulp clean:
gulp.task('clean',function(){
   return gulp.src(['src/js','src/css'],{read:false}).pipe(clean());
});


//配置默認的任務
gulp.task('default',['server'],function(done){
  done();
});

說明

1. var uglify = require(‘gulp-uglify’); 是為瞭在模塊中找到’gulp-uglify’賦值給變量uglify,在文件中使用.

2. 使用模塊插件需要先本地安裝,例如:

  npm intsall gulp-uglify –save-dev

3. gulp.task(str,option,fn)

  str為任務名稱,唯一標識任務,option為任務名數組,在此任務執行前先觸發的任務,fn為回調函數。

特別註意option裡的任務

– 同步:

gulp.task('default', ['clean', 'less', 'images', 'js', 'watch']); 

– 異步:

gulp.task('default', ['clean'], function(){ 

     gulp.start('less', 'images', 'js', 'watch'); 

 });  

gulp還能做什麼?

gulp能做的遠不止這些,作為設計理念領先的構建工具,gulp的魅力遠不止於此。

其它的插件:

gulp-jshint: js代碼靜態檢查工具

gulp-sass: sass的預處理器

gulp-autoprefixer:根據設置瀏覽器版本自動處理瀏覽器前綴

gulp-imagemin:圖片壓縮

gulp-concat:合並文件

gulp-rev:對文件名加MD5後綴

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *