原文來自於:http://www.infoq.com/cn/news/2014/02/gulpnode
Fractal公司積極參與了數個流行Node.js模塊的開發,它最近發佈了一個新的構建系統gulp,但願可以取代Grunt,成爲最流行的JavaScript任務運行器。git
根據gulp的文檔,它努力實現的主要特性是:github
Gulp經過流和代碼優於配置策略來儘可能簡化任務編寫的工做。這看起來有點「像jQuery」的方法,把動做串起來建立構建任務。早在UNIX的初期,流就已經存在了。流在Node.js生態系統中也扮演了重要的角色,所以用gulp編寫任務也可看做是用Node.js編寫任務。當使用流時,gulp去除了中間文件,只將最後的輸出寫入磁盤,整個過程所以變得更快。gulp採用代碼優於配置的策略,讓簡單的事情繼續簡單,將複雜的任務變得可管理。gulp
與其餘任務運行器同樣,每一個任務均可以是一個簡單的工做單元:緩存
var gulp = require('gulp'); var uglify = require('gulp-uglify'); gulp.task('scripts', function() { return gulp .src(['src/js/**/*.js']) .pipe(uglify()) .pipe(gulp.dest('build/js')); });
或者有任務依賴:學習
gulp.task('default-task', function(){ gulp.run('scripts'); // watch files and run scripts if they change gulp.watch("./src/**/*.js", function(event { gulp.run('scripts'); }); );
關於Grunt,對它的抱怨除了過於冗長,還包括大量的插件作了他們不應作的工做。Mark Goodyear在一篇博客中舉了個例子,Grunt的imagemin插件不只壓縮圖片,同時還包括緩存功能。他表示,在gulp中,緩存是另外一個插件,能夠被別的插件使用,這樣就促進了插件的可重用性。ui
查看gulp的代碼庫活動以及加星關注的人數,能夠發現這個構建系統已經開始得到動力。它同時也引發了JavaScript社區的興趣:Yeoman的首席開發者Addy Osmani,提交了一篇issue,向團隊成員介紹gulp並評估其替換當前構建系統。Sindre Sorhus是Yeoman研發團隊成員和NPM的主要貢獻者,寫了一篇關於gulp的博客並在Twitter上提到gulp:「比Grunt速度更快、配置更少」。插件
原文英文連接:Gulp Aiming to Dethrone Grunt圖片