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

时间:2014-10-01 15:12:54

标签: javascript gruntjs jshint

我有一个特殊的JSHint / Grunt设置,我希望在其中完成以下任务:

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

    为了解决覆盖限制,让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']
            }
        }
    }
    

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

1 个答案:

答案 0 :(得分:0)

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

<html>
<head>
<title>Frames Test</title>
<style>
.menu {
float:left;
width:20%;
  height:80%;
}
.mainContent {
  float:left;
  width:75%;
  height:80%;
}
</style>
</head>
<body>
<iframe class="menu" src="menu.html"></iframe>
<iframe class="mainContent" src="events.html"></iframe>
</body>
</html>

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