我还没有找到任何关于如何做到这一点的文档,甚至不确定应该做这样的事情:
var fileStream;
gulp.task('lint', ['glob'], function () {
var jshint = require('gulp-jshint');
fileStream.pipe(jshint())
.pipe(jshint.reporter('default'));
});
gulp.task('glob', function () {
fileStream = gulp.src([
'./js/**/*.js',
'!**/node_modules/**'
]);
});
这是做这样事情的最好方法吗?是否有更好的方式来通过'由1个任务返回/创建的流进入其他一些任务,以便对于这样的事情,我们不会复制整个流程,同时仍然会制作' lint' &安培; '水珠'不同的任务。这在Gulp中甚至是可取的吗?
谢谢!
答案 0 :(得分:11)
gulp.src
)并以" sink"结束。插件(gulp.dest
,或者在您的示例中为记者)。所以对你的例子来说:
var paths = {
scripts:[
'./js/**/*.js',
'!**/node_modules/**'
],
css: './css/**'
};
gulp.task('lint', function () {
var jshint = require('gulp-jshint');
var stream = gulp.src(paths.scripts)
.pipe(jshint())
.pipe(jshint.reporter('default'));
return stream;
});
gulp.task('cssmin', function () {
var stream = gulp.src(paths.css)
.pipe(cssmin())
.pipe(gulp.dest("..."));
return stream;
});
Gulp的任务协调器(很快就会出现一个新的Gulp 4)正在处理任务依赖及其执行。 Remember, those tasks can be async,因此您不想共享可供多个消费者使用的流!