javascript - 优化 Gulp 任务

标签 javascript gulp

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

这很好,只是它不允许我独立于 jscs 运行 jshint 任务(如果我愿意的话)。

因此我想知道这方面的最佳实践是什么?我当时想我可以将事情分解成不同的功能,然后将事情编排在一起,但这似乎不是正确的方法。

最佳答案

我见过并使用的解决方案是:

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))
}

如果您只想执行一个,您可以只从其中一个函数返回流。

关于javascript - 优化 Gulp 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461065/

相关文章:

javascript - 包括/排除 gulp.src 的 glob

javascript - 如何从 GULP 将所有目录文件电影到其他目录

javascript - gulp 任务运行请求显示日志消息太晚了

css - AngularJS/gulp/路由器 : CSS not found when changing routes

javascript - javascript 原型(prototype)上的属性与对象上的属性有什么区别?

typescript - 使用Webpack为Web部署Electron应用程序时防止发出某些代码

javascript - KendoUI Treeview 根据值展开节点

javascript - 如何在不修改 HTML 内容的情况下加载和解析 HTML

javascript - 将 Blob 数据作为 MultipartFile 从 Angular6 客户端发送到 Spring Boot API

javascript - Jquery 插件输入字段接受多个 IP 地址