@vitrail/rollup-plugin-typescript
v1.0.3
Published
[![NPM version][npm-image]][npm-url] [![Build Status][build-image]][build-url] [![Coverage percentage][coveralls-image]][coveralls-url]
Downloads
67
Readme
@vitrail/rollup-plugin-typescript
A Rollup plugin for seamless integration between Rollup and TypeScript.
Why another TypeScript plugin?
This plugin was written because none of the two main TypeScript plugins available for Rollup are satisfactory:
@rollup/plugin-typescript
:- Watches files and triggers re-build by itself, meaning that it conflicts with any development tool that is not Rollup. See this issue for more information.
- Doesn't work consistently depending on where Rollup is executed, meaning that it can't be used in any other context than the opinionated one that it was written with in mind. See this issue for more information.
- Doesn't work at all as soon as there is a source file in the current working directory that is not valid, even if it is not part of the dependency graph of the entry point. See this issue for more information.
- Is opinionated instead of honoring TypeScript compiler options as they are passed, basically babysitting developers instead of considering that they know what they are doing.
- Doesn't honor
tsconfig.json
compiler options.
rollup-plugin-typescript2
:- Doesn't work at all as soon as there is a source file in the current working directory that is not valid, even if it is not part of the dependency graph of the entry point.
- Is opinionated instead of honoring TypeScript compiler options as they are passed, basically babysitting developers instead of considering that they know what they are doing.
- Doesn't honor
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.
Requirements
This plugin requires at least Rollup 4.9.
Installation
The recommended way to install the package is via npm:
npm install @vitrail/rollup-plugin-typescript --save-dev
Usage
API
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()
]
};
CLI
rollup -i index.ts -o index.js -p @vitrail/rollup-plugin-typescript
Plugin factory signature
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>;
options
compilerOptions
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.
exclude
A pattern, or an array of patterns, which specifies the files in the build the plugin should ignore. By default, no files are ignored.
include
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.