上篇文章我們分別對 gulp 的 .src 和 .dest 兩個(gè)主要接口做了分析,今天打算把剩下的面紗一起揭開 —— 解析 gulp.task 的源碼,了解在 gulp4.0 中是如何管理、處理任務(wù)的。
在先前的版本,gulp 使用了 orchestrator 模塊來指揮、排序任務(wù),但到了 4.0 則替換為 undertaker 來做統(tǒng)一管理。先前的一些 task 寫法會有所改變:
///////舊版寫法gulp.task('uglify', function(){ return gulp.src(['src/*.js']) .pipe(uglify()) .pipe(gulp.dest('dist')); }); gulp.task('default', ['uglify']);///////新版寫法1gulp.task('uglify', function(){ return gulp.src(['src/*.js']) .pipe(uglify()) .pipe(gulp.dest('dist')); }); gulp.task('default', gulp.parallel('uglify'));///////新版寫法2function uglify(){ return gulp.src(['src/*.js']) .pipe(uglify()) .pipe(gulp.dest('dist')); } gulp.task(uglify); gulp.task('default', gulp.parallel(uglify));
更多變化點(diǎn),可以參考官方 changelog,或者在后文我們也將透過源碼來介紹各 task API 用法。