Gradle で JSHint を使う

Gradle のソースコードに JSHint プラグインが含まれているのだけれど、公式ドキュメントには出ていない。フォーラムのコメントによれば eriwen/gradle-js-plugin を使うのがおすすめだそうだ。

こんな build.gradle を用意する。

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.eriwen:gradle-js-plugin:1.5.0'
  }
}

apply plugin: 'js'

javascript {
  source {
    main {
      js {
        srcDir 'src/main/js'
        include "*.js"
        exclude "*.min.js"
      }
    }
  }
}

task jshintz(type: com.eriwen.gradle.js.tasks.JsHintTask) {
  source = javascript.source.main.js.files
  // dest = file("${buildDir}/jshint.out")
  jshint.options = [expr: "true", unused: "true"]
  jshint.predef = ["exports": 1]
  outputToStdOut = true
}

gradle jshintz で実行。

% gradle jshintz
:jshintz
Missing semicolon. (/Users/akira/Documents/2013/06/js-tdd/src/main/js/strftime.js:10:52)
> return formatter.call(Date.formats, date)

'strtime' is defined but never used. (/Users/akira/Documents/2013/06/js-tdd/src/main/js/strftime.js:2:19)
> function strtime(format) {

'min' is defined but never used. (/Users/akira/Documents/2013/06/js-tdd/src/main/js/strftime.js:19:23)
> function zeroPad(min) {


BUILD SUCCESSFUL

Total time: 5.042 secs