如何强制JSHint在grunt中运行以始终使用--verbose标志

Max*_*rty 7 javascript jshint gruntjs

我有一个特殊的JSHint/Grunt设置,我想在其中完成以下操作:

  1. 从单个.jshintrc文件加载以允许我的IDE linter获取我的设置
  2. 能够在其他grunt任务中覆盖.jshintrc中的单个选项
  3. 让JSHint始终以详细模式运行,以便我始终可以看到警告编号,而无需使用--verbose运行所有grunt

以下允许我从.jshintrc加载并始终以详细运行,但不允许选项覆盖.文档提到这应该是这种情况,但不要说任何有关详细选项的信息,它有效:

jshint: {
    options:{
        jshintrc: '.jshintrc',
        verbose: true,
    },
    source: {
        options: {
            ignores: ['src/**/*.test.js'],
        },
        files:{
            src:['src/**/*.js']
        }
    },
    tests: {
        options: {
            unused: false
        },
        files: {
             src: ['src/**/*.test.js']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了解决覆盖限制,只需将grunt将.jshintrc文件的内容注入到配置中就相当容易,但无论出于何种原因,这会导致linter现在抛出"line 0 col 0 Bad option:'verbose'. (E001)"错误(如果我删除options.verbose = true;行,但没有详细标记,则运行正常):

jshint: {
    options:(function () {
        var options = grunt.file.readJSON('.jshintrc');
        options.verbose = true;
        return options;
    }()),
    source: {
        options: {
            ignores: ['src/**/*.test.js'],
        },
        files:{
            src:['src/**/*.js']
        }
    },
    tests: {
        options: (function () {
            var options = grunt.file.readJSON('.jshintrc');
            options.unused = false;
            return options;
        }()),
        files: {
            src: ['src/**/*.test.js']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,鉴于我的三个标准,有没有办法配置grunt以这种方式运行?

Ole*_*yga 0

如何使用 grunt-contrib-jshint 在特定文件上运行 jshint:

./node_modules/grunt-contrib-jshint/node_modules/jshint/bin/jshint --verbose app/sources/modules/dashboard/views/dashboard-performance/dashboard-performance-ctrl.js
Run Code Online (Sandbox Code Playgroud)

无法在选项中为 grunt jshint 定义详细模式。并且直到grunt更新后才能解决。 (感谢 MaxPRafferty)