Skip to content
This repository has been archived by the owner on Aug 4, 2021. It is now read-only.

rollup/rollup-plugin-typescript

Repository files navigation

Moved

This module has moved and is now available at @rollup/plugin-typescript. Please update your dependencies. This repository is no longer maintained.

rollup-plugin-typescript

Build Status npm-version npm-monthly-downloads npm-dependencies

Seamless integration between Rollup and Typescript.

Why?

See rollup-plugin-babel.

Installation

npm install --save-dev rollup-plugin-typescript typescript tslib

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

Usage

// rollup.config.js
import typescript from 'rollup-plugin-typescript';

export default {
  input: './main.ts',
  plugins: [
    typescript()
  ]
}

The plugin loads any compilerOptions from the tsconfig.json file by default. Passing options to the plugin directly overrides those options:

...
export default {
  input: './main.ts',
  plugins: [
      typescript({lib: ["es5", "es6", "dom"], target: "es5"})
  ]
}

The following options are unique to rollup-plugin-typescript:

  • options.include and options.exclude (each a minimatch pattern, or array of minimatch patterns), which determine which files are transpiled by Typescript (all .ts and .tsx files by default).

  • tsconfig when set to false, ignores any options specified in the config file. If set to a string that corresponds to a file path, the specified file will be used as config file.

  • typescript overrides TypeScript used for transpilation:

    typescript({
      typescript: require('some-fork-of-typescript')
    })
  • tslib overrides the injected TypeScript helpers with a custom version

    typescript({
      tslib: require('some-fork-of-tslib')
    })

TypeScript version

Due to the use of tslib to inject helpers, this plugin requires at least TypeScript 2.1. See also here.

Importing CommonJS

Though it is not recommended, it is possible to configure this plugin to handle imports of CommonJS files from TypeScript. For this, you need to specify CommonJS as the module format and add rollup-plugin-commonjs to transpile the CommonJS output generated by TypeScript to ES Modules so that rollup can process it.

// rollup.config.js
import typescript from 'rollup-plugin-typescript';
import commonjs from 'rollup-plugin-commonjs';

export default {
  input: './main.ts',
  plugins: [
    typescript({module: 'CommonJS'}),
    commonjs({extensions: ['.js', '.ts']}) // the ".ts" extension is required
  ]
}

Note that this will often result in less optimal output.

Issues

This plugin will currently not warn for any type violations. This plugin relies on TypeScript's transpileModule function which basically transpiles TypeScript to JavaScript by stripping any type information on a per-file basis. While this is faster than using the language service, no cross-file type checks are possible with this approach.

This also causes issues with emit-less types, see #28.