轉:Gulp的目標是取代Grunt

原文來自於:http://www.infoq.com/cn/news/2014/02/gulpnode

 

Fractal公司積極參與了數個流行Node.js模塊的開發,它最近發佈了一個新的構建系統gulp,但願可以取代Grunt,成爲最流行的JavaScript任務運行器。git

根據gulp的文檔,它努力實現的主要特性是:github

  • 易於使用:採用代碼優於配置策略,gulp讓簡單的事情繼續簡單,複雜的任務變得可管理。
  • 高效:經過利用node.js強大的流,不須要往磁盤寫中間文件,能夠更快地完成構建。
  • 高質量:gulp嚴格的插件指導方針,確保插件簡單而且按你指望的方式工做。
  • 易於學習:經過把API降到最少,你能在很短的時間內學會gulp。構建工做就像你設想的同樣:是一系列流管道。

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圖片

相關文章
相關標籤/搜索