Skip to content

TypeScript Gradle Plugin, integrates the TypeScript compiler into a Gradle build

License

Notifications You must be signed in to change notification settings

Neiko2002/typescript-gradle-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript Gradle Plugin

This plugin makes it easy to build TypeScript projects using Gradle. Among other things, the plugin provides a task to run the TypeScript compiler.

Examples

Several example projects can be found in /examples.

Prerequisites

You need to have installed node.js and installed the typescript node module:

npm install -g typescript

Alternatively on windows you can install the Typescript SDK and configure the compilerExecutable config option to tsc - see Available configuration options.

Quickstart

This will guide you through the steps needed to set up typescript-gradle-plugin for a TypeScript application project using Maven/Gradle standard layout.

Plugin dependency

As this is not a core Gradle plugin, you have to ensure, that Gradle knows how to get the plugin. Do do this, add the following lines to your build.gradle:

buildscript {
    repositories {
       jcenter()
    }
    dependencies {
        classpath 'de.richsource.gradle.plugins:typescript-gradle-plugin:1.1'
    }
}

Next, apply the plugin.

apply plugin: "typescript"

Configuring the TypeScript compile task

You can configure the TypeScript compile task as shown below:

compileTypeScript {
	sourcemap = true
	// additional configuration options
}

Run the TypeScript compiler

gradle compileTypeScript

Available configuration options

Here is a list of the available configuration options of the compileTypeScript task:

  • source - (File) directories to compile, defaults to src/main/ts
  • outputDir - (File) the output directory, defaults to buildDir/ts
  • out - (File) Concatenate and emit output to single file, e.g. file("${buildDir}/js/out.js")
  • module - (de.richsource.gradle.plugins.typescript.Module) Specify module code generation (AMD or COMMONJS)
  • target - (de.richsource.gradle.plugins.typescript.Target) Specify ECMAScript target version (ES3, ES5 or ES6)
  • declaration - (boolean) Generates corresponding .d.ts file
  • noImplicitAny - (boolean) Warn on expressions and declarations with an implied 'any' type
  • noResolve - (boolean) Skip resolution and preprocessing
  • removeComments - (boolean) Do not emit comments to output
  • sourcemap - (boolean) Generates corresponding .map file
  • sourceRoot - (File) Specifies the location where debugger should locate TypeScript files instead of source locations
  • codepage - (Integer) Specify the codepage to use when opening source files
  • mapRoot - (File) Specifies the location where debugger should locate map files instead of generated locations
  • compilerExecutable - (String) The tsc compiler executable to use. Defaults to "cmd /c tsc.cmd" on windows and "tsc" on other systems.
  • noEmitOnError - (boolean) Do not emit outputs if any type checking errors were reported

Integrating the compiled files into a WAR file (for Java Webapps)

If you are integrating TypeScript into a Java web application, you can easily integrate the compiled files into the WAR file. All you have to do is to configure the war task to pick up the compiled files. Whenever you call the war task, the TypeScript compiler will compile your TypeScript files first. In the example below, the compiled files will be put into the js directory in the WAR file.

apply plugin: "war"

war {
		into("js") {
    		from compileTypeScript.outputs
		}
}

Configuring multiple source directories

You can configure the TypeScript compile task to use multiple source directories as shown below:

compileTypeScript {
	source = [file("src/main/ts"), file("src/main/additionalts")]
}

About

TypeScript Gradle Plugin, integrates the TypeScript compiler into a Gradle build

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Groovy 67.1%
  • TypeScript 21.0%
  • Java 11.9%