我还没有找到任何关于如何做到这一点的文档,甚至不确定应该做这样的事情:
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/**'
]);
});
Run Code Online (Sandbox Code Playgroud)
这是做这样事情的最好方法吗?是否有一种更好的方法可以将1个任务返回/创建的流"传递"到其他任务中,这样对于类似这样的东西,我们不会复制globbing,同时仍然可以创建'lint'和'glob'不同的任务.这在Gulp中甚至是可取的吗?
谢谢!
Bri*_*zel 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;
});
Run Code Online (Sandbox Code Playgroud)
Gulp的任务编排器(很快就会为Gulp 4推出一个新版本)处理任务依赖性及其执行.请记住,这些任务可以是异步的,因此您不希望共享可供多个消费者使用的流!