前端自動化工具 -- gulp https://angularjs.org/

shirleyYing發表於2017-03-09

gulp是基於流的前端自動化構建工具。

gulp是基於stream流的形式,也就是前一個函式(工廠)製造出結果,提供後者使用。

同樣的,也是包括基本用法和各外掛的使用。

二、基本用法--外掛使用

gulp所支援的外掛也是很多的,使用方式跟基本的nodejs差不多。

下面統一介紹幾個常見的 外掛 ,更詳細用法可以到對應官方站點檢視API

使用它們,就要先install,可以直接在package.json中直接配置devDependencies依賴項,然後再統一 npm install

以下只是本人使用前端自動化gulp的一些方法,僅供參考

1、開啟cmd,輸入 npm install -g gulp ,在全域性環境下安裝gulp

2、回車,進入你想要壓縮的資料夾裡面,輸入 npm install --save-dev gulp,在區域性環境安裝gulp

3、再來按照你的專案有什麼檔案壓縮什麼檔案,一般在cmd通常都要壓縮html、js、css和圖片,或是合併。。。

4、在cmd 輸入 npm install --save-dev gulp-uglify  js檔案壓縮

  npm install --save-dev gulp-clean-css  css檔案壓縮

  npm install --save-dev gulp-html-minify  html檔案壓縮

  npm install --save-dev gulp-imagemin  圖片壓縮

  npm install --save-dev gulp-autoprefixer  自動新增css字首

  npm install --save-dev gulp-contact  合併檔案

5、接下來就是程式碼了

  // 1、先裝全域性變數
  // 2、再裝本地
  var gulp = require("gulp");
  // 3、壓縮程式碼的模組,還需要本地安裝 gulp-uglify
  var uglify = require("gulp-uglify");//壓縮js
  var cssmin = require("gulp-clean-css");//壓縮css
  var htmlmin = require("gulp-html-minify");//壓縮html
  var imgmin = require("gulp-imagemin");//壓縮圖片
  var concat = require("gulp-concat");//合併檔案
  var autoprefixer = require("gulp-autoprefixer");//新增字首  

  //壓縮JS
  gulp.task("jsmin",function(argument){
     this.src("./public/js/audio.js") //壓縮js檔案原件的路徑
       .pipe(uglify())    //使用uglify() 方法壓縮
        .pipe(gulp.dest("./dist/js"))    //檔案壓縮的最終目的是/dist/js資料夾裡面
  })

  //合併檔案
  gulp.task("jsmin",function(argument){
    this.src("./public/js/*")   //* 代表 兩個或兩個以上的檔案
      .pipe(uglify())               //使用uglify() 方法壓縮
      .pipe(concat("all.min.js"))   //使用concat方法 將兩個或兩個以上的檔案壓縮到  all.min.js 檔案裡面
      .pipe(gulp.dest("./dist/js"))   //檔案壓縮的最終目的是/dist/js資料夾裡面
  })

  //壓縮css
  gulp.task("cssmin",function(argument){
    this.src("./public/css/song.css")
      .pipe(autoprefixer({               //autoprefixer 方法 自動新增css字首
      browsers:['last 2 versions'],    //瀏覽器的版本
        cascade:true
      }))
      .pipe(cssmin())         //使用cssmin() 方法壓縮
      .pipe(gulp.dest("./dist/css"))   //檔案壓縮的最終目的是/dist/css資料夾裡面
  })

  //壓縮html
  gulp.task("htmlmin",function(argument){
    this.src("./*.html")   
      .pipe(htmlmin())
      .pipe(gulp.dest("./dist"))
  })  

  //壓縮img
  gulp.task("imgmin",function(argument){
    this.src("./public/img/*")    //所有的圖片
      .pipe(imgmin())          //使用imagemin() 方法壓縮圖片
      .pipe(gulp.dest("./dist/image"))  //檔案壓縮的最終目的是/dist/image資料夾裡面
  }) 

  gulp.task("default",function(argument){
    gulp.run(["jsmin","cssmin","htmlmin","imgmin"]);
  })

 

相關文章