A Rollup plugin for seamless integration between Rollup and TypeScript.
This plugin was written because none of the two main TypeScript plugins available for Rollup are satisfactory:
@rollup/plugin-typescript
:
tsconfig.json
compiler options.rollup-plugin-typescript2
:
tsconfig.json
compiler options.Additionally, this plugin is likely to be faster on big projects than both the two main alternatives thanks to its native support of the incremental feature of TypeScript compiler and the reliance on the canonical resolution algorithm of the TypeScript compiler that considers only the files that are part of the entry point dependency graph.
This plugin requires at least Rollup 4.9.
The recommended way to install the package is via npm:
npm install @vitrail/rollup-plugin-typescript --save-dev
Create a Rollup configuration file, import the plugin factory and add an instance to the list of plugins
:
// rollup.config.mjs
import {createTypeScriptPlugin} from '@vitrail/rollup-plugin-typescript';
export default {
input: 'index.ts',
output: {
dir: 'output'
},
plugins: [
createTypeScriptPlugin()
]
};
rollup -i index.ts -o index.js -p @vitrail/rollup-plugin-typescript
import type {CompilerOptions} from "typescript";
import type {Rollup} from "rollup";
type PluginFactory = (options?: {
compilerOptions?: CompilerOptions;
exclude?: ReadonlyArray<string | RegExp> | string | RegExp;
include?: ReadonlyArray<string | RegExp> | string | RegExp;
}) => Plugin<null>;
An instance of TypeScript CompilerOptions
, minus the properties inlineSourceMap
and sourceMap
. Used by the factory to either override the compiler options resolved from the first available tsconfig.json
file (starting from the current working directory) if any, or as the entire set of compiler options otherwise.
Note that the inlineSourceMap
and sourceMap
properties will always be passed as false
and true
, respectively, to the underlying TypeScript compiler, in order to guarantee that the plugin is always capable of returning a source map to the Rollup engine.
A pattern, or an array of patterns, which specifies the files in the build the plugin should ignore. By default, no files are ignored.
A pattern, or an array of patterns, which specifies the files in the build the plugin should operate on. By default, .ts
, .cts
, .mts
and .tsx
files are targeted.