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