【发布时间】:2014-11-26 11:39:35
【问题描述】:
我有一个特定的 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;
}()),
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 以这种方式运行?
【问题讨论】:
-
对于任何寻找此问题的答案的人,我已将其作为错误提交到 github.com/gruntjs/grunt-contrib-jshint/issues/178 - 可以在那里找到详细信息,如果情况发生变化,我会更新此问题。
-
对此有任何更新,特别是如何获得详细模式?检查了链接,但它已关闭。
-
grunt contrib jshint 似乎认为他们不对发送给 grunt 的参数负责,也不会处理(因此关闭了问题。)。我已经搬到了 eslint,它有我需要的所有选项:npmjs.com/package/grunt-eslint
标签: javascript gruntjs jshint