【问题标题】:Integrate JSHint into Jenkins without using the Checkstyle or JSLint reporter在不使用 Checkstyle 或 JSLint 报告器的情况下将 JSHint 集成到 Jenkins
【发布时间】:2013-11-26 08:30:29
【问题描述】:

是否可以在不使用 Checkstyle 或 JSLint 报告器的情况下将 JSHint 集成到 Jenkins 中?

我之所以要这样做是因为默认情况下两个报告器也显示非错误,这不是我想要的(另请参阅JSHint shows non-errors for checkstyle reporter)。

有没有办法直接集成JSHint?

【问题讨论】:

    标签: jenkins jshint


    【解决方案1】:

    上周我遇到了类似的问题,但是我使用 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 文件。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我想指出,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>
      

      使用Jenkins的违规插件,并输入您的_jsHint_ XML output in the space forjslint`的名称。

      而且,它实际上也记录在README.md 中。我错过了。

      【讨论】:

        【解决方案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
        

        【讨论】:

          猜你喜欢
          • 2015-07-17
          • 2015-03-02
          • 2013-12-10
          • 2012-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-23
          相关资源
          最近更新 更多