Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 链序任务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How to run Gulp tasks sequentially one after the other                                    13个
我有3个我想要处理的任务,当这3个任务完成后,我想做以下事情:

>将三个文件连接在一起
> Uglify
>写入磁盘

有了Grunt,我有一个很长的过程.这是我和Gulp一起尝试过的

gulp.task('libs',function () {
return gulp.src('js/libs/*.js')
        .pipe(concat('01.libs.js',{newLine: ';'}))
        .pipe(gulp.dest('min'));
});

gulp.task('plugins',function () {
    return gulp.src('js/plugins/*.js')
            .pipe(concat('02.plugins.js',{newLine: ';'}))
            .pipe(gulp.dest('min'));
});

gulp.task('apps',function () {
    return gulp.src('js/apps/**/*.js')
            .pipe(concat('03.apps.js',{newLine: ';'}))
            .pipe(gulp.dest('min'));
});

gulp.task('scripts',['libs','plugins','apps'],function () {
    return gulp .src('min/*.js')
            .pipe(concat('testFile.js',{newLine: ';\r\n'}))
            .pipe(rename({suffix: '.min.v' + pkg.version }))
            .pipe(gulp.dest('min'))
            .pipe(notify({ message: 'Scripts minified'}));
});

这是有效的,但我想只输出输出,而不是写出3个中间文件,然后将它们连接起来.

所以我接着尝试了:

function libs () {
    return gulp.src('js/libs/*.js')
            .pipe(concat('01.libs.js',{newLine: ';'}));
}

function plugins () {
    return gulp.src('js/plugins/*.js')
            .pipe(concat('02.plugins.js',{newLine: ';'}));
}

function apps () {
    return gulp.src('js/apps/**/*.js')
            .pipe(concat('03.apps.js',{newLine: ';'}));
}

那么我的构建将是:

gulp.task('build',function () {
    return libs()
        .pipe(plugins())
        .pipe(apps())
        .pipe(concat('TestFile.js',{newLine: ';\r\n'}))
        .pipe(rename({suffix: '.min.v' + pkg.version }))
        .pipe(gulp.dest('min'));
});

这不起作用.

所以我试了Q:

function allOfThem () {
    return Q.all(libs(),plugins(),apps());
}

gulp.task('build',function () {
    return allOfThem().then(function (one,two,threE) {
        console.log(one,threE);
    });
});

我想这可行,但回调中没有数据.

我迷路了.实现这一目标的最佳方法是什么?

解决方法

使用event-stream.merge

var es = require('event-stream');
gulp.task('build',function () {
    return es.merge(libs(),apps())
        .pipe(concat('TestFile.js',{newLine: ';\r\n'}))
        .pipe(rename({suffix: '.min.v' + pkg.version }))
        .pipe(gulp.dest('min'));
});

大佬总结

以上是大佬教程为你收集整理的node.js – 链序任务全部内容,希望文章能够帮你解决node.js – 链序任务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。