Registry / type-stubs / rollup-plugin-flat-dts

rollup-plugin-flat-dts

JSON →
library2.9.0jsnpmunverified

A Rollup plugin that flattens TypeScript .d.ts declaration files into a single bundle, generating a merged type definition file. Current stable version 2.9.0 supports Rollup 2.79.1–5.0 and TypeScript 4.8.4–5.8. It differs from other .d.ts bundlers by flattening instead of merging, which imposes strict constraints: all exports are public (use @internal to mark internals), default exports only at top level, and no renamed re-exports. Ideal for libraries that want a single type file and can adhere to its limitations. Released roughly twice a year, tracking TypeScript minor versions.

npm install rollup-plugin-flat-dts
INSTALL
IMPORT
SIG · ROLLUP-PLUGIN-FLAT
R
rollup-plugin-flat-dts
type-stubsjavascriptv2.9.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

flatDts
import flatDts from 'rollup-plugin-flat-dts'
const { flatDts } = require('rollup-plugin-flat-dts')
Default export; named export not available. CommonJS users must use default interop.
flatDts (type)
import type { FlatDtsOptions } from 'rollup-plugin-flat-dts'
Options type exported for TypeScript users; import via type-only import to avoid runtime overhead.

Rollup config producing a single .js and flattened .d.ts. Demonstrates typical setup with TypeScript plugin and the flatDts output plugin.

import commonjs from '@rollup/plugin-commonjs'; import nodeResolve from '@rollup/plugin-node-resolve'; import flatDts from 'rollup-plugin-flat-dts'; import ts from 'rollup-plugin-typescript2'; export default { input: './src/index.ts', plugins: [commonjs(), ts(), nodeResolve()], output: { format: 'esm', file: 'dist/index.js', plugins: [flatDts({ tsconfig: 'tsconfig.json' })], }, };
Debug
Known issues
gotchaDefault exports only supported at top level in entry points
fix
Avoid default exports in nested modules; use named exports and re-export in index.
affects: >=2.0.0
gotchaExported symbols must be unique across the codebase
fix
Rename duplicate exports to be globally unique.
affects: >=2.0.0
gotchaRe-exports with aliases (e.g., `export { Foo as Bar }`) are not supported
fix
Use direct exports or alias via separate declaration: `const Bar = Foo; export { Bar };`
affects: >=2.0.0
gotchaEvery export in every file becomes part of public API unless marked @internal
fix
Add `@internal` JSDoc tag to internal exports, or use `internal` option with glob patterns.
affects: >=2.0.0
breakingForces `resolveJsonModule: false` as JSON module imports unsupported by SystemJS
fix
Avoid importing JSON modules in your source; or use a different output format.
affects: >=2.3.1
breakingDisables `verbatimModuleSyntax` option as incompatible with SystemJS target
fix
Do not set `verbatimModuleSyntax` in tsconfig; plugin overrides it.
affects: >=2.3.0 <2.4.0
Errors
Common errors & fixes
The plugin is intended to be used as an output plugin, not a regular plugin
Adding flatDts() to `plugins` array instead of inside `output.plugins`
fix
Move flatDts() to `output.plugins` array in rollup.config.js.
Error: TypeScript compiler options 'module' must be set to 'System' for DTS flattening
The plugin expects module system set to 'System' internally (ignored in output) but user config may conflict
fix
Ensure tsconfig compilerOptions does not force a different module system that conflicts; plugin overrides as needed.
Error: Cannot find module 'rollup-plugin-flat-dts'
Package not installed; or ESM import in CommonJS context
fix
Install: `npm install --save-dev rollup-plugin-flat-dts`. Ensure rollup.config is ESM or use dynamic import.
Upgrade
Version history
2.9.0latest on npm
Audit
Dependencies
rolluprequiredPeer dependency: the plugin operates as a Rollup output plugin.
typescriptrequiredPeer dependency: uses TypeScript compiler API to process declaration files.
Agent activity
26 hits · last 30 days
node
22
OpenAI (training)
2
Amazon
1
Resources
rollup-plugin-flat-dts — npm install rollup-plugin-flat-dts · libregistry