首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Gulp.js任务,是否返回资源?

Gulp.js任务,是否返回资源?
EN

Stack Overflow用户
提问于 2014-02-11 18:24:50
回答 3查看 31.3K关注 0票数 134

我是个新手,并且一直在研究示例设置。有些人的结构如下:

代码语言:javascript
复制
gulp.task("XXXX", function() {
    gulp.src("....

其他人有这样的想法:

代码语言:javascript
复制
gulp.task("XXXX", function() {
   return gulp.src("....

我想知道src上的返回有什么不同?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-11 19:38:55

return表示该任务是异步的。gulp.src()返回一个流,所以它是异步的。

如果没有它,任务系统将不知道它何时结束。阅读docs

票数 159
EN

Stack Overflow用户

发布于 2015-05-24 10:17:06

如果你有依赖任务,你需要返回流,让这些任务在它们自己运行之前等待它们的依赖任务完成。

例如

代码语言:javascript
复制
// without return
gulp.task('task1', function() {
    gulp.src('src/coffee/*.coffee')
      /* eg compile coffeescript here */
     .pipe(gulp.dest('src'));
});

gulp.task('task2', ['task1'], function() {
    gulp.src('src/*.js')
      /* eg minfify js here */
     .pipe(gulp.dest('dest'));
});

在这个例子中,你会期望task1task2运行之前完成(例如编译coffeescript或其他东西)……但是,除非我们添加return,否则它们将同步运行,而不是异步运行;并且编译后的不会缩小,因为task2不会等待任务1完成,因此不会获得task1的编译输出。因此,在这种情况下,我们应该始终返回。

代码语言:javascript
复制
// with return
gulp.task('task1', function() {
    return gulp.src('**/*.coffee')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

gulp.task('task2', ['task1'], function() {
    return gulp.src('**/*.js')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

编辑:这里的食谱进一步解释了这一点。https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md

票数 37
EN

Stack Overflow用户

发布于 2015-01-28 01:13:23

我发现这很有帮助,如果你每个任务有多个流。您需要合并/合并多个流并返回它们。

代码语言:javascript
复制
var gulp = require('gulp');
var merge = require('gulp-merge');

gulp.task('test', function() {
    var bootstrap = gulp.src('bootstrap/js/*.js')
        .pipe(gulp.dest('public/bootstrap'));

    var jquery = gulp.src('jquery.cookie/jquery.cookie.js')
        .pipe(gulp.dest('public/jquery'));

    return merge(bootstrap, jquery);
});

使用Gulps任务定义结构的另一种方法是:

代码语言:javascript
复制
var gulp = require('gulp');

gulp.task('bootstrap', function() {
    return gulp.src('bootstrap/js/*.js')
        .pipe(gulp.dest('public/bootstrap'));
});

gulp.task('jquery', function() {
    return gulp.src('jquery.cookie/jquery.cookie.js')
        .pipe(gulp.dest('public/jquery'));
});

gulp.task('test', ['bootstrap', 'jquery']);
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21699146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档