我有一个特殊的JSHint / Grunt设置,我想在其中完成以下操作:
>从单个.jshintrc文件加载,以允许我的IDE linter获取我的设置
>能够在其他grunt任务中覆盖.jshintrc中的单个选项
>让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'] } } }
为了解决覆盖限制,只需将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; }()),tests: { options: (function () { var options = grunt.file.readJSON('.jshintrc'); options.unused = false; return options; }()),files: { src: ['src/**/*.test.js'] } } }
所以,鉴于我的三个标准,有没有办法配置grunt以这种方式运行?