{"id":21244,"library":"esbuild-plugin-d.ts","title":"esbuild-plugin-d.ts","description":"ESBuild plugin for compiling TypeScript declaration files (.d.ts) using the TypeScript compiler API. Current stable version is 2.0.0, released in late 2024. Requires Node.js >=20 and TypeScript >=5.5 <7. Key differentiator: integrates declaration generation directly into esbuild's build pipeline, supporting incremental builds and experimental bundling. v2 removed default export, Node.js <20 support, and deprecated helper exports. Alternatives include tsup and separate tsc --emitDeclarationOnly.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/Floffah/esbuild-plugin-d.ts","tags":["javascript","typescript"],"install":[{"cmd":"npm install esbuild-plugin-d.ts","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-d.ts","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-d.ts","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; uses TypeScript compiler API for declaration emit.","package":"typescript","optional":false}],"imports":[{"note":"v2 removed default export; must use named export.","wrong":"import dtsPlugin from 'esbuild-plugin-d.ts'","symbol":"dtsPlugin","correct":"import { dtsPlugin } from 'esbuild-plugin-d.ts'"},{"note":"CommonJS require with destructuring.","wrong":"const dtsPlugin = require('esbuild-plugin-d.ts')","symbol":"dtsPlugin (CommonJS)","correct":"const { dtsPlugin } = require('esbuild-plugin-d.ts')"},{"note":"TypeScript type import for options.","wrong":null,"symbol":"DtsPluginOptions","correct":"import type { DtsPluginOptions } from 'esbuild-plugin-d.ts'"}],"quickstart":{"code":"import { build } from 'esbuild';\nimport { dtsPlugin } from 'esbuild-plugin-d.ts';\n\nawait build({\n  entryPoints: ['./src/index.ts'],\n  outdir: './dist',\n  plugins: [dtsPlugin()],\n});","lang":"typescript","description":"Shows basic usage: importing the plugin and adding it to esbuild plugins array."},"warnings":[{"fix":"Change `import dtsPlugin from 'esbuild-plugin-d.ts'` to `import { dtsPlugin } from 'esbuild-plugin-d.ts'`","message":"Default export removed in v2. Use named export `dtsPlugin`.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Upgrade Node.js to version 20 or later.","message":"Node.js <20 no longer supported in v2.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Upgrade TypeScript to >=5.5.0 <7","message":"TypeScript versions below 5.5 are no longer supported in v2.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Only use the plugin and DtsPluginOptions type.","message":"Helper exports (e.g., `createProgram`) removed in v2.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use tsc separately for declaration emit if esbuild integration is not required.","message":"Plugin adds noticeable overhead; consider separate `tsc --emitDeclarationOnly` if build time is critical.","severity":"gotcha","affected_versions":"all"},{"fix":"Test thoroughly or avoid production use.","message":"Declaration bundling (`experimentalBundling`) is experimental and may not cover all edge cases.","severity":"gotcha","affected_versions":"all"},{"fix":"Set `incremental: true` in your tsconfig.","message":"Incremental builds require `incremental: true` in tsconfig.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use named import: `import { dtsPlugin } from 'esbuild-plugin-d.ts'`","cause":"Incorrect import: using default import in v2.","error":"Cannot find module 'esbuild-plugin-d.ts'"},{"fix":"Change to `import { dtsPlugin } from 'esbuild-plugin-d.ts'`","cause":"Trying to call default export in v2.","error":"TypeError: dtsPlugin is not a function"},{"fix":"Use named export `dtsPlugin`.","cause":"Default export removed in v2.","error":"The requested module 'esbuild-plugin-d.ts' does not provide an export named 'default'"},{"fix":"Use `import type { DtsPluginOptions } from 'esbuild-plugin-d.ts'`","cause":"Using `DtsPluginOptions` as a runtime value instead of a type import.","error":"error TS2693: 'DtsPluginOptions' only refers to a type, but is being used as a value here."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}