运行 一个 Gulp 任务异步,但仅在需要时

Running a Gulp task async, but only when needed

Gulp 的异步任务看起来非常简单,我将它们用于很多 "first clean the directory, then build the LESS" 风格的异步任务。

不过,我坚持使用一个,而且我确定这是我的参考系。我希望有人能告诉我它的逻辑。

Deploy 依赖于增量 * build-changelog(我们永远不想部署到同一个版本控制的文件夹)。 build-changelog 没有依赖项(可以 运行 随时更改)除了与部署配对时。这样的话,也需要等待increment完成。

如果有人可以帮助我了解我 mis-thinking 对此的看法,我将不胜感激!

nz

首先,我非常担心您的任务可以 "make a changeling at any time"。

继续......这是一种让gulp当前笨拙的任务依赖系统感到头疼的事情。

现在我建议这样做:

function changelog (cb) {
  // ...
  cb();
}

gulp.task('build-changelog', changelog);
gulp.task('deploy:build-changelog', ['increment'], changelog);

gulp.task('increment', function (cb) {
  // ...
  cb();
});

gulp.task('deploy', ['deploy:build-changelog'], function (cb) {
  // ...
  cb();
});