我是个新手,并且一直在研究示例设置。有些人的结构如下:
gulp.task("XXXX", function() {
gulp.src("....
其他人有这样的想法:
gulp.task("XXXX", function() {
return gulp.src("....
我想知道src上的返回有什么不同?
发布于 2014-02-11 19:38:55
return
表示该任务是异步的。gulp.src()
返回一个流,所以它是异步的。
如果没有它,任务系统将不知道它何时结束。阅读docs。
发布于 2015-05-24 10:17:06
如果你有依赖任务,你需要返回流,让这些任务在它们自己运行之前等待它们的依赖任务完成。
例如
// 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或其他东西)……但是,除非我们添加return,否则它们将同步运行,而不是异步运行;并且编译后的不会缩小,因为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
发布于 2015-01-28 01:13:23
我发现这很有帮助,如果你每个任务有多个流。您需要合并/合并多个流并返回它们。
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']);
https://stackoverflow.com/questions/21699146
复制相似问题