gulp.series()

2020-09-30 18:05 更新

gulp.series()介紹

將任務(wù)函數(shù)和/或組合操作組合成更大的操作,這些操作將按順序依次執(zhí)行。對于使用 series() 和 parallel() 組合操作的嵌套深度沒有強(qiáng)制限制。

gulp.series()用法

const { series } = require('gulp');

function javascript(cb) {
  // body omitted
  cb();
}

function css(cb) {
  // body omitted
  cb();
}

exports.build = series(javascript, css); 

gulp.series()函數(shù)原型

series(...tasks)

參數(shù)

參數(shù)類型描述
tasks
(required)
function
string
任意數(shù)量的任務(wù)函數(shù)都可以作為單獨的參數(shù)傳遞。如果您以前注冊過任務(wù),可以使用字符串,但不建議這樣做。

返回值

返回一個組合操作,它將注冊為任務(wù)或嵌套在其他 series 和/或 parallel 組合中。

當(dāng)執(zhí)行組合操作時,所有任務(wù)將按順序運(yùn)行。如果一個任務(wù)中發(fā)生錯誤,則不會運(yùn)行后續(xù)任務(wù)。

可能出現(xiàn)的錯誤

當(dāng)沒有傳遞任何任務(wù)時,拋出一個錯誤,并提示 "One or more tasks should be combined using series or parallel"。(一個或多個應(yīng)該使用 series 或 parallel 組合的任務(wù)”。)

當(dāng)傳遞無效的任務(wù)或未注冊的任務(wù)時,將拋出一個錯誤,顯示 "Task never defined"(任務(wù)從未定義)。

向前引用(Forward references)

向前引用是指使用尚未注冊的字符串引用組合任務(wù)。在舊版本中,這是一種常見的實踐,但是為了實現(xiàn)更快的任務(wù)運(yùn)行時間和促進(jìn)使用命名函數(shù),刪除了該特性。

在較新的版本中,如果嘗試使用向前引用,將會得到一個錯誤,消息為 “Task never defined”。當(dāng)您嘗試為您的任務(wù)注冊和按字符串組合任務(wù)使用 exports 時,可能會遇到這種情況。在這種情況下,使用命名函數(shù)而不是字符串引用。

在遷移期間,您可能需要使用 forward reference registry。這將為每個任務(wù)引用添加一個額外的閉包,并顯著降低構(gòu)建速度。不要太長時間依賴這個修復(fù)程序。

避免重復(fù)任務(wù)

當(dāng)運(yùn)行組合操作時,每個任務(wù)將在每次提供時執(zhí)行。

在兩個不同的組合中引用的 clean 任務(wù)將運(yùn)行兩次,將導(dǎo)致不期望的結(jié)果。因此,建議在最終組合中指定 clean 任務(wù)。

If you have code like this:

// This is INCORRECT
const { series, parallel } = require('gulp');

const clean = function(cb) {
  // body omitted
  cb();
};

const css = series(clean, function(cb) {
  // body omitted
  cb();
});

const javascript = series(clean, function(cb) {
  // body omitted
  cb();
});

exports.build = parallel(css, javascript);

可轉(zhuǎn)換為:

const { series, parallel } = require('gulp');

function clean(cb) {
  // body omitted
  cb();
}

function css(cb) {
  // body omitted
  cb();
}

function javascript(cb) {
  // body omitted
  cb();
}

exports.build = series(clean, parallel(css, javascript));


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號