最近研究了一下gulp構建工具,發現使用起來比grunt順手一些。(我的感覺),如下是grunt和gulp構建方式和原理:css
gruntnode
基於文件方式構建,會把文件先寫到臨時目錄下,而後進行讀文件,修改文件,寫文件,,,讀文件,修改文件,寫文件..... 須要進行大量IO操做。git
gulp github
基於流(streaming)的方式構建,首先讀取文件,編譯壓縮文件(流的方式),最終將結果生成到配置的文件目錄下。npm
安裝gulpgulp
假設已經安裝了node 和npm (淘寶的cnpm很適合國內使用)。bootstrap
一、首頁全局安裝gulp。grunt
1 npm install --global gulp
二、其次局部安裝gulp。(注:局部安裝是安裝到你項目的根目錄,這是不少教程沒有清晰代表)工具
npm install gulp --save-dev
三、在項目根目錄下建立一個名爲 gulpfile.js
的文件ui
var gulp = require('gulp'); gulp.task('default', function() { // 將你的默認的任務代碼放在這 });
四、運行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