node.js中g(shù)runt和gulp的區(qū)別詳解
node.js中g(shù)runt和gulp的區(qū)別詳解
自nodeJS登上前端舞臺,自動化構(gòu)建變得越來越流行。目前最流行的當(dāng)屬grunt和gulp,這兩個光看名字挺像,功能也差不多,不過gulp能在grunt這位大哥如日中天的境況下開辟出自己的一片天地,有著她獨到的優(yōu)點。
- 易用 Gulp相比Grunt更簡潔,而且遵循代碼優(yōu)于配置策略,維護Gulp更像是寫代碼。
- 高效 Gulp相比Grunt更有設(shè)計感,核心設(shè)計基于Unix流的概念,通過管道連接,不需要寫中間文件。
- 高質(zhì)量 Gulp的每個插件只完成一個功能,這也是Unix的設(shè)計原則之一,各個功能通過流進行整合并完成復(fù)雜的任務(wù)。例如:Grunt的imagemin插件不僅壓縮圖片,同時還包括緩存功能。他表示,在Gulp中,緩存是另一個插件,可以被別的插件使用,這樣就促進了插件的可重用性。目前官方列出的有673個插件。
- 易學(xué) Gulp的核心API只有5個,掌握了5個API就學(xué)會了Gulp,之后便可以通過管道流組合自己想要的任務(wù)。
- 流 使用Grunt的I/O過程中會產(chǎn)生一些中間態(tài)的臨時文件,一些任務(wù)生成臨時文件,其它任務(wù)可能會基于臨時文件再做處理并生成最終的構(gòu)建后文件。而使用Gulp的優(yōu)勢就是利用流的方式進行文件的處理,通過管道將多個任務(wù)和操作連接起來,因此只有一次I/O的過程,流程更清晰,更純粹。
- 代碼優(yōu)于配置 維護Gulp更像是寫代碼,而且Gulp遵循CommonJS規(guī)范,因此跟寫Node程序沒有差別。
一個簡單的Gulpfile.js配置格式
var gulp = require('gulp'); var jshint = require('gulp-jshint'); var concat = require('gulp-concat'); var rename = require('gulp-rename'); var uglify = require('gulp-uglify'); // Lint JS gulp.task('lint', function() { return gulp.src('src/*.js') .pipe(jshint()) .pipe(jshint.reporter('default')); }); // Concat & Minify JS gulp.task('minify', function(){ return gulp.src('src/*.js') .pipe(concat('all.js')) .pipe(gulp.dest('dist')) .pipe(rename('all.min.js')) .pipe(uglify()) .pipe(gulp.dest('dist')); }); // Watch Our Files gulp.task('watch', function() { gulp.watch('src/*.js', ['lint', 'minify']); }); // Default gulp.task('default', ['lint', 'minify', 'watch']);
以上就是node.js中g(shù)runt和gulp的區(qū)別的講解,如果大家有疑問請留言或者到本站社區(qū)進行討論交流,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
基于 Node 實現(xiàn)簡易 serve靜態(tài)資源服務(wù)器的示例詳解
靜態(tài)資源服務(wù)器(HTTP 服務(wù)器)可以將靜態(tài)文件(如 js、css、圖片)等通過 HTTP 協(xié)議展現(xiàn)給客戶端。本文介紹如何基于 Node 實現(xiàn)一個簡易的靜態(tài)資源服務(wù)器,感興趣的朋友一起看看吧2022-06-06node項目使用http模塊發(fā)送get-post請求方式
這篇文章主要介紹了node項目使用http模塊發(fā)送get-post請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09Node.js 實現(xiàn)搶票小工具 & 短信通知提醒功能
這篇文章主要介紹了Node.js 實現(xiàn)搶票小工具 & 短信通知提醒功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10