Gulp的目標是取代Grunt

jopen 10年前發布 | 8K 次閱讀 Grunt

Fractal公司積極參與了數個流行Node.js模塊的開發,它最近發布了一個新的構建系統gulp,希望能夠取代Grunt,成為最流行的JavaScript任務運行器。

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

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

Gulp通過流和代碼優于配置策略來盡量簡化任務編寫的工作。這看起來有點“像jQuery”的方法,把動作串起來創建構建任務。早在UNIX的初 期,流就已經存在了。流在Node.js生態系統中也扮演了重要的角色,因此用gulp編寫任務也可看作是用Node.js編寫任務。當使用流 時,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中,緩存是另一個插件,可以被別的插件使用,這樣就促進了插件的可重用性。

查看gulp的代碼庫活動以及加星關注的人數,可以發現這個構建系統已經開始獲得動力。它同時也引起了JavaScript社區的興趣:Yeoman的首席開發者Addy Osmani,提交了一篇issue,向團隊成員介紹gulp并評估其替換當前構建系統。Sindre Sorhus是Yeoman研發團隊成員和NPM的主要貢獻者,寫了一篇關于gulp的博客并在推ter上提到gulp:“比Grunt速度更快、配置更少”。

原文英文鏈接:Gulp Aiming to Dethrone Grunt
來自:http://www.infoq.com/cn/news/2014/02/gulp

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!