如何按顺序运行gulp任务?

如何按顺序运行gulp任务?,gulp,gulp-concat,gulp-task,Gulp,Gulp Concat,Gulp Task,我试图通过运行任务将所有css文件压缩到一个已发布的css文件中: gulp.task('task one', () => { gulp.src([Dir + "**/*.css"]) .pipe(concat(outFilename + ".css")) .pipe(gulp.dest(destDir)); }); 之后,因为输出css文件中的字体路径不正确,所以我需要修改路径 gulp.task('task two', () => {

我试图通过运行任务将所有css文件压缩到一个已发布的css文件中:

gulp.task('task one', () => {  
    gulp.src([Dir + "**/*.css"])
        .pipe(concat(outFilename + ".css"))
        .pipe(gulp.dest(destDir));
});
之后,因为输出css文件中的字体路径不正确,所以我需要修改路径

gulp.task('task two', () => {
    var urlAdjuster = require('gulp-css-url-adjuster');

    //change font path for released css files
    gulp.src([releasePath + "/*.css"])
        .pipe(urlAdjuster({
            replace: ['../../fonts', '../fonts'],
        }))
        .pipe(gulp.dest(releasePath + "/"));
);
为了实现这一点,我需要逐个分别运行这两个任务。 如何按顺序运行这两个任务并将它们放入一个任务中

我试过: 系列=需要“大口系列”--不起作用

gulp.task('task two', ['task one'], function () {
    // Gulp. src (...
});
---不起作用

gulp.task('task two', ['task one'], function () {
    // Gulp. src (...
});
--更新---------------------------- 我以前用过return,但现在可以用了。实际代码为:

function procHTMLForRelease(stream, file) {
    gulp.src([Dir + "**/*.css"])
        .pipe(concat(outFilename + ".css"))
        .pipe(gulp.dest(destDir));

}

function processRelease() {


    // Grab all html files in the folder.
    // Loop over them, process them, then spit em out.
    gulp.src([paths.Source + "/*.html"])
        .pipe(foreach(procHTMLForRelease))
        .pipe(gulp.dest(paths.Release));

    // Process image files
    gulp.src([paths.Source + "images/*.*"])
        .pipe(gulp.dest(paths.Release + "images/"));

    // Copy font files
    gulp.src([paths.html + "fonts/*.*", paths.html + "fonts/*/*.*"])
        .pipe(gulp.dest(paths.release + "/fonts/"));


}  



gulp.task('task one', () => { return processRelease();
});
这是正确的,它将任务1设置为任务2的依赖项。然而,要使其工作,任务1需要返回


您可以像这样修改更新的代码以使其返回

函数中的任务将异步运行,但您可以使另一个函数依赖于所有正在完成的任务

gulp.task('task two', ['task one'], function () {
    // Gulp. src (...
});

对于任何有相同问题并正在寻找解决方案的人: 下面是我如何修复它的:

例如:

// This will run in this order:
// * build-clean
// * build-scripts and build-styles in parallel
// * build-html
// * Finally call the callback function
gulp.task('build', function(callback) {
  runSequence('build-clean',
              ['build-scripts', 'build-styles'],
              'build-html',
              callback);
});

@lofihelsinki我使用了return,但它并没有真正起作用,请参阅我的更新。您必须将每个gulp.src放入它自己的任务中,并返回gulp.src,如我的回答所示。如果您只是在gulp.src前面添加return,那么您的原始示例应该可以工作。您的更新示例没有任何依赖项,因此无法工作。您的原始代码与更新的代码完全不同,为什么?
gulp.task('task two', ['task one'], function () {
    // Gulp. src (...
});
// This will run in this order:
// * build-clean
// * build-scripts and build-styles in parallel
// * build-html
// * Finally call the callback function
gulp.task('build', function(callback) {
  runSequence('build-clean',
              ['build-scripts', 'build-styles'],
              'build-html',
              callback);
});