2013-11-26 47 views

回答

3

我想指出,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之中。我錯過了。

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 %>" ] 
    }, 
} 

所以,當你想在詹金斯運行的JSLint只要運行:產生

grunt jshint:jenkins 

,並輸出到.xml文件。我希望這可以幫助你。

+0

有用,謝謝! – miek

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