运行 一个 Gulp 任务异步,但仅在需要时
Running a Gulp task async, but only when needed
Gulp 的异步任务看起来非常简单,我将它们用于很多 "first clean the directory, then build the LESS" 风格的异步任务。
不过,我坚持使用一个,而且我确定这是我的参考系。我希望有人能告诉我它的逻辑。
build-changelog 获取我当前的 git 日志并将其转换为 markdown。它使用 git 标签作为 headers
increment 增加我的版本号并将其应用为 git 标签
deploy 打包所有内容并将其复制到服务器上的版本化文件夹
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();
});
Gulp 的异步任务看起来非常简单,我将它们用于很多 "first clean the directory, then build the LESS" 风格的异步任务。
不过,我坚持使用一个,而且我确定这是我的参考系。我希望有人能告诉我它的逻辑。
build-changelog 获取我当前的 git 日志并将其转换为 markdown。它使用 git 标签作为 headers
increment 增加我的版本号并将其应用为 git 标签
deploy 打包所有内容并将其复制到服务器上的版本化文件夹
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();
});