Detalhes do pacote

rolldown-plugin-dts

sxzz114kMIT0.13.4

A Rolldown plugin to bundle dts files

readme (leia-me)

rolldown-plugin-dts npm

Unit Test

A Rolldown plugin to generate and bundle dts files.

Install

⚠️ Requires rolldown@1.0.0-beta.9 or later.

npm i rolldown-plugin-dts

Usage

Add the plugin to your rolldown.config.js:

// rolldown.config.js
import { dts } from 'rolldown-plugin-dts'

export default {
  input: './src/index.ts',
  plugins: [dts()],
  output: [{ dir: 'dist', format: 'es' }],
}

You can find an example in here.

Options

export interface Options {
  /**
   * The directory in which the plugin will search for the `tsconfig.json` file.
   */
  cwd?: string

  /**
   * Set to `true` if your entry files are `.d.ts` files instead of `.ts` files.
   *
   * When enabled, the plugin will skip generating a `.d.ts` file for the entry point.
   */
  dtsInput?: boolean

  /**
   * If `true`, the plugin will emit only `.d.ts` files and remove all other output chunks.
   *
   * This is especially useful when generating `.d.ts` files for the CommonJS format as part of a separate build step.
   */
  emitDtsOnly?: boolean

  /**
   * The path to the `tsconfig.json` file.
   *
   * If set to `false`, the plugin will ignore any `tsconfig.json` file.
   * You can still specify `compilerOptions` directly in the options.
   *
   * @default 'tsconfig.json'
   */
  tsconfig?: string | boolean

  /**
   * Pass a raw `tsconfig.json` object directly to the plugin.
   *
   * @see https://www.typescriptlang.org/tsconfig
   */
  tsconfigRaw?: Omit<TsConfigJson, 'compilerOptions'>

  /**
   * Override the `compilerOptions` specified in `tsconfig.json`.
   *
   * @see https://www.typescriptlang.org/tsconfig/#compilerOptions
   */
  compilerOptions?: TsConfigJson.CompilerOptions

  /**
   * If `true`, the plugin will generate `.d.ts` files using Oxc,
   * which is significantly faster than the TypeScript compiler.
   *
   * This option is automatically enabled when `isolatedDeclarations` in `compilerOptions` is set to `true`.
   */
  isolatedDeclarations?:
    | boolean
    | Omit<IsolatedDeclarationsOptions, 'sourcemap'>

  /**
   * If `true`, the plugin will generate declaration maps (`.d.ts.map`) for `.d.ts` files.
   */
  sourcemap?: boolean

  /**
   * Resolve external types used in `.d.ts` files from `node_modules`.
   */
  resolve?: boolean | (string | RegExp)[]

  /**
   * If `true`, the plugin will generate `.d.ts` files using `vue-tsc`.
   */
  vue?: boolean

  /**
   * If `true`, the plugin will launch a separate process for `tsc` or `vue-tsc`.
   * This enables processing multiple projects in parallel.
   */
  parallel?: boolean

  /**
   * If `true`, the plugin will prepare all files listed in `tsconfig.json` for `tsc` or `vue-tsc`.
   *
   * This is especially useful when you have a single `tsconfig.json` for multiple projects in a monorepo.
   */
  eager?: boolean
}

Differences from rollup-plugin-dts

Isolated Declarations

The plugin leverages Oxc's isolatedDeclarations to generate .d.ts files when isolatedDeclarations is enabled, offering significantly faster performance compared to the typescript compiler.

Single Build for ESM

rolldown-plugin-dts generates separate chunks for .d.ts files, enabling both source code (.js) and type definition files (.d.ts) to be produced in a single build process.

However, this functionality is limited to ESM output format. Consequently, two distinct build processes are required for CommonJS source code (.cjs) and its corresponding type definition files (.d.cts). In such cases, the emitDtsOnly option can be particularly helpful.

Credits

The project is inspired by rollup-plugin-dts but has been independently implemented. We extend our gratitude to the original creators for their contributions. Furthermore, the test suite is authorized by them and distributed under the MIT license.

Sponsors

License

MIT License © 2025 三咲智子 Kevin Deng