@jsxtools/rollup-plugin-tsc
v0.3.2
Published
A Rollup plugin for compiling TypeScript files with the TypeScript Compiler API.
Readme
@jsxtools/rollup-plugin-tsc
rollup-plugin-tsc is a rollup plugin that compiles TypeScript files using TypeScript's Compiler API.
Out of the box, this plugin uses tsconfig.json to add files to the rollup pipeline, emit .d.ts files if enabled, and support incremental updates on subsequent builds.
Installation
npm install @jsxtools/rollup-plugin-tscUsage
import { rollupPluginTsc } from '@jsxtools/rollup-plugin-tsc'
export default {
plugins: [
rollupPluginTsc(/* optional configuration */)
]
}Features
- Uses TypeScript's incremental compilation.
- Adds files to the rollup pipeline, allowing other rollup plugins to transform them.
- Supports source map generation and
.d.tsfile emission alongside JavaScript output. - Handles TypeScript assets and build artifacts (like
.jsonimports). - Supports custom TypeScript configurations and compiler options.
- Supports TypeScript Custom Transformers for advanced AST transformations.
- Exposes TypeScript
SourceFileobjects for other plugins. - Supports file watching for development builds.
Configuration Options
configFile- TypeScript configuration file (default:tsconfig.json).include- Additional files to include in compilation.exclude- Additional files to exclude from compilation.compilerOptions- Additional TypeScript compiler options.customTransformers- TypeScript Custom Transformers for AST transformations.references- TypeScript project references.workDir- Current working directory (default: current process directory).
rollupPluginTsc({
workDir: ".",
configFile: "tsconfig.json",
compilerOptions: {
declaration: true,
sourceMap: true,
},
customTransformers: {
before: [myCustomTransformer],
},
include: [
"src/**/*.ts",
],
exclude: [
"src/**/*.test.ts",
],
})Integration
rollup-plugin-tsc exposes TypeScript SourceFile objects through Rollup's module metadata, enabling other plugins to access the TypeScript AST:
// in the transform hook of another plugin
const sourceFile = this.getModuleInfo(id)?.meta?.tsc?.sourceFile;
if (sourceFile) {
void sourceFile // access the ts.SourceFile object associated with this module
}API
The plugin also exports a separate API for programmatic use:
import { TscAPI } from '@jsxtools/rollup-plugin-tsc/api';Peer Dependencies
rollup^4.6.0typescript^5.4.5
License
MIT-0
