{"id":21995,"library":"rollup-plugin-dts","title":"rollup-plugin-dts","description":"A Rollup plugin for bundling .d.ts TypeScript definition files into a single file. Current stable version is 6.4.1, released under maintenance mode with occasional compatibility updates for new TypeScript releases. Key differentiators: leverages TypeScript's own compiler for import resolution, automatically externalizes node_modules and @types, supports sourcemaps for Go-to-Definition via declarationMap. Alternatives include API Extractor and dts-bundle-generator. Requires Node >=20, peer dependencies rollup ^3.29.4 || ^4 and TypeScript ^4.5 || ^5.0 || ^6.0.","status":"maintenance","version":"6.4.1","language":"javascript","source_language":"en","source_url":"https://github.com/Swatinem/rollup-plugin-dts","tags":["javascript","rollup-plugin","typescript","dts","@types"],"install":[{"cmd":"npm install rollup-plugin-dts","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-dts","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-dts","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; the plugin is a Rollup plugin.","package":"rollup","optional":false},{"reason":"Peer dependency; uses TypeScript's compiler API for .d.ts parsing and resolution.","package":"typescript","optional":false}],"imports":[{"note":"Use named import to avoid 'dts is not a function' error in Rollup configs. CommonJS require may break due to ES module export.","wrong":"const { dts } = require('rollup-plugin-dts')","symbol":"dts (named)","correct":"import { dts } from 'rollup-plugin-dts'"},{"note":"Default import still supported for legacy code, but named import is preferred for compatibility.","wrong":"const dts = require('rollup-plugin-dts').default","symbol":"dts (default)","correct":"import dts from 'rollup-plugin-dts'"},{"note":"Type import; do not use value import as it will cause runtime error.","wrong":"import { DtsOptions } from 'rollup-plugin-dts'","symbol":"DtsOptions","correct":"import type { DtsOptions } from 'rollup-plugin-dts'"}],"quickstart":{"code":"// rollup.config.js\nimport { dts } from 'rollup-plugin-dts';\n\nexport default {\n  input: './src/index.ts',\n  output: {\n    file: './dist/types/index.d.ts',\n    format: 'es',\n  },\n  plugins: [dts()],\n};","lang":"javascript","description":"Basic Rollup configuration to bundle .d.ts files using the dts plugin. Input is .ts file, output is single .d.ts file."},"warnings":[{"fix":"Update Node to >=20, TypeScript to ^4.5+.","message":"Version 6 requires Node >=20 and TypeScript ^4.5 || ^5.0 || ^6.0. Older Node/TS versions incompatible.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Upgrade Rollup to ^3.29.4 or ^4.","message":"Version 4 drops support for Rollup 2. Only Rollup ^3.29.4 || ^4 supported.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Use import { dts } from 'rollup-plugin-dts' instead.","message":"Default import is deprecated in favor of named import { dts }.","severity":"deprecated","affected_versions":">=4.0.0"},{"fix":"Use includeExternal option to bundle specific packages.","message":"Plugin automatically externalizes all node_modules, but external packages' .d.ts files are not bundled unless includeExternal option is set.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Do not use other Rollup plugins that modify module resolution.","message":"Using other resolution plugins (e.g., @rollup/plugin-node-resolve) can cause conflicts and is not recommended.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use import { dts } from 'rollup-plugin-dts' or use .mjs extension and named import.","cause":"Using default import or CommonJS require in Rollup config; the module exports a named function.","error":"[!] TypeError: dts is not a function"},{"fix":"Ensure the module is installed or marked as external in tsconfig or plugin options.","cause":"The plugin cannot find a module referenced in .d.ts file (likely not in node_modules).","error":"Error: Could not resolve 'some-module' from 'file.d.ts'"},{"fix":"Create a tsconfig.json with appropriate settings or use the tsconfig option.","cause":"Missing or invalid tsconfig.json; plugin needs TypeScript project configuration.","error":"TypeError: Cannot read properties of undefined (reading 'program')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}