unplugin-dts

Bundler plugin that generates .d.ts declaration files across Vite, Rollup, Webpack, Rspack, and esbuild

Tool
npm
v1.1.2
1,531 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
78 /100 Good
Development Activity 72
Maintenance 84
Community 56
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
72 /100 Good
Architecture 78
Code Quality 72
Innovation 66
Learning Curve 70

unplugin-dts generates TypeScript declaration files (.d.ts) from .ts(x) and .vue source when building a library, and does it as a single plugin that works across Vite, Rollup, Rolldown, Webpack, Rspack, and esbuild via the unplugin abstraction. It’s the successor to vite-plugin-dts — the same author’s earlier, Vite-only plugin, whose README now explicitly tells users to switch to unplugin-dts — extending the same declaration-generation approach (with optional API Extractor-based type bundling) to every major bundler instead of being locked to Vite’s library mode.

Teams publishing a TypeScript library add it as a build plugin so consumers get accurate, source-following (or bundled) type declarations without a separate tsc --emitDeclarationOnly step wired into their build pipeline.

What You Get

  • One plugin package with per-bundler entry points (unplugin-dts/vite, /rollup, /webpack, /rspack, /esbuild) sharing a common core
  • Declaration generation that follows source file structure by default, for both .ts(x) and .vue files
  • Optional type bundling into a single declaration file via Microsoft’s API Extractor (bundleTypes: true)
  • Migration documentation from vite-plugin-dts v4/v5 for projects moving off the deprecated package
  • Works alongside library-mode builds to emit types matching the built JS output

Common Use Cases

  • Publishing a TypeScript library to npm with correct, versioned .d.ts files as part of the build
  • Migrating an existing vite-plugin-dts-based build to a bundler-agnostic setup
  • Generating declarations for a Vue component library alongside its compiled JS
  • Bundling scattered per-file declarations into a single .d.ts entry point for cleaner published packages
  • Switching a library’s build tool (e.g. Vite to Rspack) without switching declaration-generation plugins

Under The Hood

Architecture - Built on the unplugin framework, the package’s src/core holds bundler-agnostic declaration-generation logic, while thin per-bundler entry files (vite.ts, rollup.ts, webpack.ts, rspack.ts, esbuild.ts, rolldown.ts) adapt that core to each build tool’s plugin hook interface, so one implementation of TS-to-declaration generation is reused across six bundlers instead of being reimplemented per tool. Tech Stack - TypeScript, built with tsx/unbuild, using Microsoft’s @microsoft/api-extractor as an optional dependency for the type-bundling feature, and tested with Vitest across per-bundler playground projects (react-vite, vue-rspack, ts-webpack, etc.) in the monorepo. Code Quality - The monorepo enforces commitlint, ESLint, and Husky pre-commit hooks, has dedicated e2e playground projects per bundler for integration testing, and shows very active, well-maintained development (score 84 health, active commits as of the latest release); the core package itself has a comparatively small direct unit-test footprint, relying more on the playground/e2e projects for coverage. API Design - Sharing one dts() options object across bundler entry points (options.tsconfigPath, options.bundleTypes) keeps configuration familiar to anyone coming from vite-plugin-dts, and the explicit migration guide lowers switching cost; the tradeoff is that some options are bundler-specific under the hood even though the top-level API looks uniform, so edge cases can require reading the per-bundler docs.

Used by 35 apps in this directory

Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 6 days ago
Rust
72%
Apache 2.0

Rivet

AI Agents · Developer Tools

6,326

Stateful actors as a primitive for AI agents, real-time collaboration, and durable execution — with in-memory state, WebSockets, queues, and scheduling built in.

View details
87
Repo Health
81
Technical
64
Dependency
Built with
Rust 72%
TypeScript 25%
Updated 6 days ago
TypeScript
67%
MIT

Scalar

Developer Tools

16,313

Beautiful, interactive OpenAPI documentation with a built-in offline-first API client and multi-language code generation — all in one open-source platform.

View details
90
Repo Health
89
Technical
65
Dependency
Built with
TypeScript 67%
Vue 29%
Updated 6 days ago
PHP
47%
AGPL 3.0

solidtime

Invoicing Finance · Productivity

9,027

Modern open-source time tracker for freelancers and agencies with invoicing, multi-org support, and Toggl/Clockify migration built in.

View details
84
Repo Health
81
Technical
67
Dependency
Built with
PHP 47%
TypeScript 28%
Vue 22%
Updated 1 weeks ago
TypeScript
89%
Other

strapi

CMS

73,368

Open-source headless CMS that auto-generates REST and GraphQL APIs from your content models, with a fully customizable admin panel you control.

View details
93
Repo Health
84
Technical
63
Dependency
Built with
TypeScript 89%
JavaScript 11%
Updated 1 weeks ago
TypeScript
67%
Other

TaskView

Productivity · Project Management

1,367

Self-hosted project and task management platform for software teams, with Kanban boards, sprints, time tracking, GitHub/GitLab integrations, and an MCP server for AI assistants.

View details
78
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 67%
Vue 21%
Updated 1 weeks ago
TypeScript
84%
Other

twenty

CRM

59,615

The open-source CRM you build, ship, and version like the rest of your stack — with customizable objects, AI agents, and a TypeScript SDK.

View details
92
Repo Health
82
Technical
64
Dependency
Built with
TypeScript 84%
MDX 14%
Updated 1 weeks ago
TypeScript
96%
GPL 3.0

Wire

Collaboration · Team Chat · Video Conferencing

1,192

Open source end-to-end encrypted messaging for teams and enterprises — self-host for complete control over your communications and data.

View details
93
Repo Health
8
Technical
68
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers