gulp 之一 安裝及簡單CSS,JS文件合並壓縮


最近研究了一下gulp構建工具,發現使用起來比grunt順手一些。(個人感受),以下是grunt和gulp構建方式和原理:

grunt

基於文件方式構建,會把文件先寫到臨時目錄下,然后進行讀文件,修改文件,寫文件,,,讀文件,修改文件,寫文件..... 需要進行大量IO操作。

gulp

基於流(streaming)的方式構建,首先讀取文件,編譯壓縮文件(流的方式),最終將結果生成到配置的文件目錄下。

安裝gulp

假設已經安裝了node 和npm (淘寶的cnpm很適合國內使用)。

1、首頁全局安裝gulp。

1 npm install --global gulp 

2、其次局部安裝gulp。(注:局部安裝是安裝到你項目的根目錄,這是很多教程沒有清晰表明)

npm install gulp --save-dev

3、在項目根目錄下創建一個名為 gulpfile.js 的文件

var gulp = require('gulp');

gulp.task('default', function() {
  // 將你的默認的任務代碼放在這
});

4、運行gulp。(默認的名為 default 的任務(task)將會被運行,想要單獨執行特定的任務(task),請輸入 gulp <task> <othertask>)

gulp

 

合並和壓縮JS、CSS文件

壓縮JS,CSS文件需要引用如下組件:

gulp-minify-css: 壓縮css
gulp-jshint: 檢查js
gulp-uglify: 壓縮js
gulp-concat: 合並文件
gulp-rename: 重命名文件
gulp-clean: 清空文件夾

gulp-notify:提示

安裝組件項目目錄,通過cd 進入項目的根目錄,執行下邊的npm安裝組件

npm install  gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-notify --save-dev

在上述 gulpfile.js 的文件里,寫入:

// 引入 gulp及組件
var gulp=require('gulp'),  //gulp基礎庫
    minifycss=require('gulp-minify-css'),   //css壓縮
    concat=require('gulp-concat'),   //合並文件
    uglify=require('gulp-uglify'),   //js壓縮
    rename=require('gulp-rename'),   //文件重命名
    jshint=require('gulp-jshint'),   //js檢查
    notify=require('gulp-notify');   //提示

gulp.task('default',function(){
    gulp.start('minifycss','minifyjs');
});
 
//css處理
gulp.task('minifycss',function(){
   return gulp.src('htdocs/kunpeng/static/css/*.css')      //設置css
       .pipe(concat('order_query.css'))      //合並css文件到"order_query"
       .pipe(gulp.dest('dist/styles'))           //設置輸出路徑
       .pipe(rename({suffix:'.min'}))         //修改文件名
       .pipe(minifycss())                    //壓縮文件
       .pipe(gulp.dest('dist/styles'))            //輸出文件目錄
       .pipe(notify({message:'css task ok'}));   //提示成功
});

//JS處理
gulp.task('minifyjs',function(){
   return gulp.src(['/static/js/juicer-min.js','/static/js/bootstrap.min.js','/static/js/bootstrap-datetimepicker.min.js','/static/js/order_query.js'])  //選擇合並的JS
       .pipe(concat('order_query.js'))   //合並js
       .pipe(gulp.dest(''dist/js'))         //輸出
       .pipe(rename({suffix:'.min'}))     //重命名
       .pipe(uglify())                    //壓縮
       .pipe(gulp.dest('dist/js'))            //輸出 
       .pipe(notify({message:"js task ok"}));    //提示
});

 

運行

gulp

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM