Gulp.js任务,返回src?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gulp.js任务,返回src?相关的知识,希望对你有一定的参考价值。

我是新手,并且一直在查看示例设置。有些人有以下结构:

gulp.task("XXXX", function() {
    gulp.src("....

其他人有这个:

gulp.task("XXXX", function() {
   return gulp.src("....

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

答案

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

没有它,任务系统就不会知道它什么时候结束。阅读docs

另一答案

如果您有依赖任务,则需要返回任务流,以便在运行自己之前等待其相关任务完成。

例如

// 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'));
});

在那个例子中,你期望task1在task2运行之前完成(例如编译coffeescript或其他)...但除非我们添加返回 - 如下例所示 - 然后它们将同步运行而不是异步运行;并且编译的coffeescript不会被缩小,因为task2不会等待任务1完成,因此不会接受task1的编译输出。所以我们应该总是在这种情况下回归。

// 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

另一答案

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

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任务定义结构的替代方案是:

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']);

以上是关于Gulp.js任务,返回src?的主要内容,如果未能解决你的问题,请参考以下文章

gulp.js

Gulp.js开始执行sass任务但没有完成

在 gulp.src() 中获取当前文件名

01. 人生苦短 gulp.js的简介与安装

gulp js文件压缩 es6 代码转换

gulp.js 自动化构建工具学习入门