TypeScript を Gradle からコンパイルする

サーバサイドは Java、クライアントサイドは TypeScript で書いてて、TypeScript のコンパイルも Gradle でやってました。 (こういうパターンは他の人はどうビルドしてるんでしょう?ちなみにJS系のビルドツールは使ったことがありません)

で以前以下のエントリで TypeScript の Gradle Plugin について書いたんですが、新しい TypeScript に対応してなかったり、ちょっと挙動が微妙だったので使うのをやめました。

tc.hatenablog.com

TypeScript の バージョン 1.5 から tsconfig.json というファイルでコンパイルの設定ができるようになったので、もう Gradle から直接 tsc コマンド叩いちゃえば良いかと思いました。

まずは、プロジェクトルートの build.gradle

task compileTypeScript(type:Exec) {
    ant.condition(property: "isWindows", value: true) { os(family: "windows") }
    commandLine(ant.properties.isWindows ? ['cmd', '/c', 'tsc'] : ['tsc'])
}

jar.dependsOn compileTypeScript

次に プロジェクトルートの tsconfig.json

{
    "compilerOptions": {
        "target": "es3",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "inlineSourceMap": true,
        "inlineSources": true,
        "rootDir": "src/main/ts",
        "outDir": "build/resources/main/static/ts",
        "jsx": "react"
    }
}

rootDirでソースディレクトリ、outDirコンパイルされたJSの出力ディレクトリを指定してる感じです。

とりあえずこんな感じでいいのかなー。

そして、eclipse の TypeScript Plugin も tsconfig.json も使ってくれるようにならないかなと思ってるところです。

以上