Babel

Install

  1. npm install @babel/cli @babel/core @babel/preset-typescript --save-dev

.babelrc

  1. {
    "presets": ["@babel/preset-typescript"]
    }

Using Command Line Interface

  1. ./node_modules/.bin/babel --out-file bundle.js src/index.ts

package.json

  1. {
    "scripts": {
    "build": "babel --out-file bundle.js main.ts"
    },
    }

Execute Babel from the command line

  1. npm run build

Browserify

Install

  1. npm install tsify

Using Command Line Interface

  1. browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js

Using API

  1. var browserify = require("browserify");
    var tsify = require("tsify");
    browserify()
    .add("main.ts")
    .plugin("tsify", { noImplicitAny: true })
    .bundle()
    .pipe(process.stdout);

More details: smrq/tsify

Grunt

Install

  1. npm install grunt-ts

Basic Gruntfile.js

  1. module.exports = function (grunt) {
    grunt.initConfig({
    ts: {
    default: {
    src: ["**/*.ts", "!node_modules/**/*.ts"],
    },
    },
    });
    grunt.loadNpmTasks("grunt-ts");
    grunt.registerTask("default", ["ts"]);
    };

More details: TypeStrong/grunt-ts

Gulp

Install

  1. npm install gulp-typescript

Basic gulpfile.js

  1. var gulp = require("gulp");
    var ts = require("gulp-typescript");
    gulp.task("default", function () {
    var tsResult = gulp.src("src/*.ts").pipe(
    ts({
    noImplicitAny: true,
    out: "output.js",
    })
    );
    return tsResult.js.pipe(gulp.dest("built/local"));
    });

More details: ivogabe/gulp-typescript

Jspm

Install

  1. npm install -g jspm@beta

Note: Currently TypeScript support in jspm is in 0.16beta

More details: TypeScriptSamples/jspm

MSBuild

Update project file to include locally installed Microsoft.TypeScript.Default.props (at the top) and Microsoft.TypeScript.targets (at the bottom) files:

  1. <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <!-- Include default props at the top -->
    <Import
    Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props"
    Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
    <!-- TypeScript configurations go here -->
    <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptRemoveComments>true</TypeScriptRemoveComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
    </PropertyGroup>
    <!-- Include default targets at the bottom -->
    <Import
    Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
    Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
    </Project>

More details about defining MSBuild compiler options: Setting Compiler Options in MSBuild projects

NuGet

  • Right-Click -> Manage NuGet Packages
  • Search for Microsoft.TypeScript.MSBuild
  • Hit Install
  • When install is complete, rebuild!

More details can be found at Package Manager Dialog and using nightly builds with NuGet

Rollup

Install

  1. npm install @rollup/plugin-typescript --save-dev

Note that both typescript and tslib are peer dependencies of this plugin that need to be installed separately.

Usage

Create a rollup.config.js configuration file and import the plugin:

  1. // rollup.config.js
    import typescript from '@rollup/plugin-typescript';
    export default {
    input: 'src/index.ts',
    output: {
    dir: 'output',
    format: 'cjs'
    },
    plugins: [typescript()]
    };

Svelte Compiler

Install

  1. npm install --save-dev svelte-preprocess

Note that typescript is an optional peer dependencies of this plugin and needs to be installed separately. tslib is not provided either.

You may also consider svelte-check for CLI type checking.

Usage

Create a svelte.config.js configuration file and import the plugin:

  1. // svelte.config.js
    import preprocess from 'svelte-preprocess';
    const config = {
    // Consult https://github.com/sveltejs/svelte-preprocess
    // for more information about preprocessors
    preprocess: preprocess()
    };
    export default config;

You can now specify that script blocks are written in TypeScript:

  1. <script lang="ts">

Vite

Vite supports importing .ts files out-of-the-box. It only performs transpilation and not type checking. It also requires that some compilerOptions have certain values. See the Vite docs for more details.

Webpack

Install

  1. npm install ts-loader --save-dev

Basic webpack.config.js when using Webpack 5 or 4

  1. const path = require('path');
    module.exports = {
    entry: './src/index.ts',
    module: {
    rules: [
    {
    test: /\.tsx?$/,
    use: 'ts-loader',
    exclude: /node_modules/,
    },
    ],
    },
    resolve: {
    extensions: ['.tsx', '.ts', '.js'],
    },
    output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
    },
    };

See more details on ts-loader here.

Alternatives: