是否可以在不使用Checkstyle或JSLint記者的情況下將JSHint集成到Jenkins中?將JSHint集成到Jenkins中而不使用Checkstyle或JSLint記者
爲什麼我想這樣做是因爲這兩個記者在默認情況下也顯示非錯誤,這不是我想要什麼原因(見JSHint shows non-errors for checkstyle reporter)。
有沒有辦法直接集成JSHint?
是否可以在不使用Checkstyle或JSLint記者的情況下將JSHint集成到Jenkins中?將JSHint集成到Jenkins中而不使用Checkstyle或JSLint記者
爲什麼我想這樣做是因爲這兩個記者在默認情況下也顯示非錯誤,這不是我想要什麼原因(見JSHint shows non-errors for checkstyle reporter)。
有沒有辦法直接集成JSHint?
我想指出,jsHint現在可以處理Report Violations,但您必須將報告類型設置爲jslint-xml
。下面是Ant任務的示例:
<jshint dir="${js.dir}">
options="${jshint.options}">
<include name="**/*.js"/>
<exclude name="**/*.min.js"/>
<report type="jslint-xml"/>
</jshint>
使用違規插件詹金斯,並把你的_jsHint_ XML output in the space for
jslint`的名稱。
而且,它實際上也記錄在README.md
之中。我錯過了。
我上週有類似的問題,但我用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 %>" ]
},
}
所以,當你想在詹金斯運行的JSLint只要運行:產生
grunt jshint:jenkins
,並輸出到.xml文件。我希望這可以幫助你。
這是實現@ 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
有用,謝謝! – miek