最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Gulp任务

运维笔记admin12浏览0评论

Gulp任务

Gulp任务

我有一个全局任务必须按顺序(同步)运行一些子任务。我使用任务的依赖机制来处理“同步”逻辑:

// main task
gulp.task('deploy', ['build', 'upload', 'extract', 'migrate'], function() {
    // task returns a stream 
});

// sub tasks
gulp.task('migrate', ['extract'], function() {
    // task returns a stream
});

gulp.task('extract', ['upload'], function() {
    // task returns a stream
});

gulp.task('upload', ['build'], function() {
    // task returns a stream
});

gulp.task('build', [], function() {
    // task returns a stream
});

依赖关系很好,并按顺序运行。但是现在,如何在不执行migrate的情况下调用extract>upload>build。因为,有时我会想要手动调用:

gulp build
gulp upload
gulp extract

而且我不希望每个任务都重新运行所有依赖项......

谢谢

回答如下:

我所做的是定义(2)我想要隔离的每个任务的版本,但让它们调用相同的逻辑,所以我不重复自己。

例如,在我当前的项目中,我有一个e2e-tests-development任务,它依赖于build-development,它在运行e2e测试之前构建服务器和客户端。有时我只想重新运行测试而不是重新构建整个应用程序。

我的e2e-tests-development.js文件看起来大致如下:

var gulp = require('gulp');
// Omitted...

gulp.task('e2e-tests-development',
    ['build-development'],
    _task);

gulp.task('e2e-tests-development-isolated',
    [], // no dependencies for the isolated version of the task.
    _task);

function _task() {
    // Omitted...
}

显然,如果你想要执行那项任务,你会用gulp而不是e2e-tests-development-isolated调用e2e-tests-development

(当然gulp真正需要的是来自命令行的--no-depedencies标志......)

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论