我将以下任务作为gulp文件的一部分:
gulp.task('jshint', function() {
return gulp.src(jsSrc)
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'));
});
gulp.task('jscs', function() {
return gulp.src(jsSrc)
.pipe(jscs());
});
gulp.task('jslint', [ 'jshint', 'jscs' ]);
根据我的理解,如果我运行jslint
我不会从仅从光盘读取中获益。要做到这一点,我必须重写它看起来像这样:
gulp.task('jslint', function() {
return gulp.src(jsSrc)
.pipe(jshint())
.pipe(jscs())
.pipe(jshint.reporter('jshint-stylish'));
});
这很好,但是如果我愿意的话,它不允许我独立于jshint
运行jscs
任务。
因此,我想知道最佳做法是什么?我在想我可以把事情分解成不同的功能并将事情协调在一起,但这似乎不是正确的方法。
答案 0 :(得分:0)
我见过并使用的解决方案是:
var merge = require('merge-stream');
gulp.task('analyze', function() {
var jshint = analyzejshint(config.js);
var jscs = analyzejscs(config.css);
return merge(jshint, jscs);
});
function analyzejshint(sources, overrideRcFile) {
var jshintrcFile = overrideRcFile || './.jshintrc';
console.log('Running JSHint');
return gulp
.src(config.js)
.pipe(plug.jshint(jshintrcFile))
.pipe(plug.jshint.reporter('jshint-stylish'));
}
function analyzejscs(sources, overrideRcFile) {
var jscsrcFile = overrideRcFile || './.jscsrc';
console.log('Running JSCS');
return gulp
.src(config.js)
.pipe(jscs(jscsrcFile))
}
如果您只想执行一个,则可以从其中一个函数返回流。