是否可以在不使用Checkstyle或JSLint报告器的情况下将JSHint集成到Jenkins中?
我之所以这样做是因为默认情况下两位记者都会显示非错误,这不是我想要的(另请参阅JSHint shows non-errors for checkstyle reporter)。
有没有办法直接集成JSHint?
答案 0 :(得分:13)
上周我遇到了类似的问题,但我使用grunt来运行jshint。我只是覆盖jshint选项,这里是示例代码:
jshint: {
options: {
jshintrc: '../config/.jshintrc',
},
src1: [
'file1.js',
'file2.js'
],
src2: [
'source/file3.js',
'source/file4.js'
],
jenkins: {
options: {
jshintrc: '../config/.jshintrc',
reporter: 'checkstyle',
reporterOutput: 'jshint.xml',
},
src: [ "<%= jshint.src1 %>", "<%= jshint.src2 %>" ]
},
}
因此,当你想在jenkins上运行jslint时,你只需运行:
grunt jshint:jenkins
并生成输出到.xml文件。我希望这对你有帮助。
答案 1 :(得分:3)
我想指出jsHint现在可以处理报告违规,但您必须将报告类型设置为jslint-xml
。以下是Ant任务的示例:
<jshint dir="${js.dir}">
options="${jshint.options}">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
<report type="jslint-xml"/>
</jshint>
使用Jenkins的违规插件,并输入_jsHint_ XML output in the space for
jslint`的名称。
而且,它实际上也记录在README.md
中。我错过了。
答案 2 :(得分:3)
这是实现@ mateusz优秀答案的另一种方式。不是创建将所有文件与额外报表选项组合在一起的其他目标,而是仅在传入--jenkins
时覆盖报表和输出。
var JENKINS = grunt.option('jenkins');
...
jshint: {
options: {
jshintrc: '../config/.jshintrc',
reporter: JENKINS && 'checkstyle',
reporterOutput: JENKINS && 'jshint.xml'
},
src1: [
'file1.js',
'file2.js'
],
src2: [
'source/file3.js',
'source/file4.js'
]
}
它不仅避免重复文件,而且在某些情况下,无法将它们全部合并到一个任务中。在我们的例子中,我们对源和测试使用不同的.jshintrc
文件。这种方法的另一个好处是,您可以轻松地将该选项应用于其他任务,而无需为每个任务重复。
$ grunt jshint --jenkins