gulp-jscs 似乎无法检测配置 (.jscsrc) 文件,但正常的 jscs 可以从命令行检测

gulp-jscs seems to be unable to detect the config (.jscsrc) file, but normal jscs can from the command line

当我从命令行 运行 "gulp style" 时,Gulp 运行s,随后 gulp-jscs 运行 s,但后者似乎无法检测 jscs 配置文件 (.jscsrc) 中定义的规则。但是,如果我从命令行 运行 jscs,那么 jscs 会检测到配置文件的规则。知道这笔交易是什么吗?

这是我的 gulp 文件:

(function() {
    "use strict";

    var gulp = require("gulp");
    var jshint = require("gulp-jshint");
    var jscs = require("gulp-jscs");
    var jsFiles = ["*.js", "src/**/*.js"];

    gulp.task("style", function () {
        console.log("Running the style task.");
        return gulp.src(jsFiles)
            .pipe(jshint())
            .pipe(jshint.reporter("jshint-stylish", {
                verbose: true
            }))
            .pipe(jscs({configPath: "./.jscsrc"}));
    });
})();

您需要 reporter(就像 jshint 有一个):

var gulp = require("gulp");
var jshint = require("gulp-jshint");
var jscs = require("gulp-jscs");
var jsFiles = ["*.js", "src/**/*.js"];

gulp.task("style", function () {
    console.log("Running the style task.");
    return gulp.src(jsFiles)
        .pipe(jshint())
        .pipe(jshint.reporter("jshint-stylish", {
            verbose: true
        }))
        .pipe(jscs({configPath: "./.jscsrc"}))
        .pipe(jscs.reporter()); // << this line here
});

其他注意事项,(如果你是cmd的运行),Gulpfile.js你不需要将其包装成匿名函数或使用'use strict'

示例输出:

[13:53:30] Using gulpfile C:\del\so\gulpjscs\Gulpfile.js
[13:53:30] Starting 'style'...
Running the style task.
[13:53:31] gulp-debug: Gulpfile.js
[13:53:31] gulp-debug: index.js
[13:53:31] gulp-debug: 2 items
Comments must start with a lowercase letter at C:\del\so\gulpjscs\index.js :
     1 |// Invalid
--------^
     2 |// valid
     3 |


1 code style error found.
[13:53:31] Finished 'style' after 187 ms

如果您不确定如何将当前路径 ./ 考虑在内,您可以随时使用 path 模块来解决,例如:

var path = require('path');
var configPath = path.resolve(path.join(__dirname, '.jscsrc'))