如何 运行 串联 gup 任务

How to run gup task in series

我是 gulp 的新手。

我写了两个需要执行的任务。当我 运行 它们分开时,它们工作正常。但是当我组合它们时,"replace" 不起作用。

gulp.task('bundle-source', function () {
  return bundler.bundle(config);
});

gulp.task('bundle-config', function(){
   return gulp.src(['config.js'])
     .pipe(replace('src/*', 'dist/*'))
    .pipe(gulp.dest(''));
});

gulp.task('bundle', ['bundle-config', 'bundle-source']);

我认为问题在于他们都在操纵 config.js。我认为第二个任务在保存到磁盘时会覆盖第一个任务所做的更改。第二个任务大概30秒。

Gulp 任务默认是 运行 并行。因此,如果您的任务正在处理相同的文件,它们可能确实会踩到彼此的脚趾。

您可以使用 gulp 的任务依赖项让它们 运行 一个接一个。所以如果 bundle-config 应该是 运行 在 bundle-source 之前:

gulp.task('bundle-source', ['bundle-config'], function () {
  return bundler.bundle(config);
});

如果你需要它们一个接一个地运行,你也可以使用像run-sequence这样的包:

var seq = require('run-sequence');

gulp.task('bundle', function(cb) {
    return seq('bundle-config', 'bundle-source', cb);
});

最后,您可以使用 gulp 4,它具有 运行 系列任务的内置机制。