如何按顺序运行三个带参数的任务?

时间:2016-04-16 09:08:25

标签: javascript node.js gulp

到目前为止我有这个代码:

gulp.task('make_prod_aa', function () {
    makeAppHtml(config.srcAalHtml, function () {
        runSequence(
          'makeTemplate',
          'make_css_bundle',
          'rename_css_bundle',
          'make_js_bundle',
          'rename_js_bundle',
          function () {
              makeAppIndex('index-aa.html');
          });
    });
});

它允许我将参数传递给两个函数,并按顺序运行函数和任务。现在我想将参数传递给第三个任务。我希望能够将config.aaTemplates参数传递给此处的任务makeTemplate:

gulp.task('makeTemplate', function () {
    return gulp.src(config.aaTemplates)
          .pipe(print(function (file) {
              return "Added file " + file + " to template";
          }))
       .pipe(minifyHTML({ collapseWhitespace: true }))
       .pipe(templateCache({ standalone: true, root: '/app' }))
       .pipe(gulp.dest(config.destPartials))
       .pipe(gzip(gzip_options))
       .pipe(gulp.dest(config.destPartials));
});

对于我如何能做到这一点表示感谢。

1 个答案:

答案 0 :(得分:2)

我认为除了使用JS闭包以使所有在序列中运行的任务共享相同的配置之外,还有其他选择。 Proof

例如:

makeAppHtml

makeTemplateimport java.util.Random; public class array { public static void main(String args[]){ int bucky[]={1,2,3,4,5}; change(bucky); System.out.println(bucky); } public static void change(int x[]){ // change the array for(int counter=0;counter<x.length;counter++) x[counter]+=5; } } 都可以访问配置对象,因为它是在外部范围内定义的,同样的技巧可以应用于功能范围,更详细的示例我建议{{3} }。