Skip to content

Releases: rolldown/tsdown

v0.22.3

16 Jun 17:38
Immutable release. Only release title and notes can be modified.
v0.22.3
472b69e

Choose a tag to compare

   🚨 Breaking Changes

   🐞 Bug Fixes

   🏎 Performance

  • css: Skip renderChunk when no CSS has been collected  -  by @ShMcK in #967 (9f051)
    View changes on GitHub

v0.22.2

04 Jun 10:37
Immutable release. Only release title and notes can be modified.
v0.22.2
15ac682

Choose a tag to compare

   🐞 Bug Fixes

    View changes on GitHub

v0.22.1

28 May 14:21
Immutable release. Only release title and notes can be modified.
v0.22.1
0bddff1

Choose a tag to compare

   🚀 Features

  • dts: Add deps.dts option to override dependency bundling for declaration files  -  by @sxzz (881bf)

   🐞 Bug Fixes

  • Improve error handling for unsupported TypeScript syntax on Node.js  -  by @sxzz (b93db)
  • Add extra space for emoji rendering in Windows Terminal  -  by @sxzz (925cc)
  • unbundle: Add shims support for unbundled builds  -  by @sxzz (fc991)
    View changes on GitHub

v0.22.0

07 May 10:07
Immutable release. Only release title and notes can be modified.
v0.22.0
e3b454b

Choose a tag to compare

   🚨 Breaking Changes

  • Drop Node.js < 22.18.0 support, make unrun optional, add tsx config loader  -  by @sxzz (a1042)
  • dts: Auto-enable dts when tsconfig declaration is true  -  by @sxzz in #872 (085f0)
  • publint: Use pkg from publint results, require publint v0.3.8+  -  by @sxzz (413bb)

   🚀 Features

   🐞 Bug Fixes

  • Explicitly drop node 23 support  -  by @sxzz (85e65)
  • debug: Enhance debug logging for pack tarball  -  by @sxzz and Copilot (5de04)
  • exports: Detect types fields nested in conditional exports  -  by @sxzz (82fa1)
  • pkg: Fix duplicate configuration warning logic  -  by @ho991217 and @sxzz in #935 (6a0d9)

🔄 Migration Guide

Node.js version

Upgrade to Node.js 22.18.0 or later. Bun and Deno remain supported (experimental).

unrun is no longer bundled

If your environment relies on the unrun config loader (i.e. you're on a Node version without native TypeScript support and use the default auto loader), install it manually:

npm i -D unrun
# or, alternatively, the new tsx loader:
npm i -D tsx

If you use Node.js 22.18.0+ with native TypeScript support, no change is needed — the auto loader will pick native.

dts auto-enabled from tsconfig

If your tsconfig.json has compilerOptions.declaration: true but you do not want tsdown to emit .d.ts files, opt out explicitly:

// tsdown.config.ts
export default defineConfig({
  dts: false,
})

exports.bin auto-detection

Any entry chunk containing a shebang (e.g. #!/usr/bin/env node) now causes tsdown to write a bin field in package.json automatically. The semantics differ slightly from explicit bin: true:

Value Single shebang Multiple shebangs No shebangs
(unset) Auto-set bin Warn, skip Silent
true Auto-set bin Throw Warn
false No bin No bin No bin

To opt out entirely:

export default defineConfig({
  exports: { bin: false },
})

Links

v0.22.0-beta.3

01 May 11:48
Immutable release. Only release title and notes can be modified.
v0.22.0-beta.3
a0f3a08

Choose a tag to compare

v0.22.0-beta.3 Pre-release
Pre-release

No significant changes

    View changes on GitHub

v0.22.0-beta.2

29 Apr 14:12
Immutable release. Only release title and notes can be modified.
v0.22.0-beta.2
c4e6dac

Choose a tag to compare

v0.22.0-beta.2 Pre-release
Pre-release

   🚀 Features

    View changes on GitHub

v0.22.0-beta.1

27 Apr 11:24
Immutable release. Only release title and notes can be modified.
v0.22.0-beta.1
e3d5e72

Choose a tag to compare

v0.22.0-beta.1 Pre-release
Pre-release

   🚨 Breaking Changes

  • Drop Node.js < 22.18.0 support, make unrun optional, add tsx config loader  -  by @sxzz (a1042)
  • dts: Auto-enable dts when tsconfig declaration is true  -  by @sxzz in #872 (085f0)
  • publint: Use pkg from publint results, require publint v0.3.8+  -  by @sxzz (413bb)

Migration Guide

Node.js version

Upgrade to Node.js 22.18.0 or later. Bun and Deno remain supported (experimental).

unrun is no longer bundled

If your environment relies on the unrun config loader (i.e. you're on a Node version without native TypeScript support and use the default auto loader), install it manually:

npm i -D unrun
# or, alternatively, the new tsx loader:
npm i -D tsx

If you use Node.js 22.18.0+ with native TypeScript support, no change is needed — the auto loader will pick native.

dts auto-enabled from tsconfig

If your tsconfig.json has compilerOptions.declaration: true but you do not want tsdown to emit .d.ts files, opt out explicitly:

// tsdown.config.ts
export default defineConfig({
  dts: false,
})

exports.bin auto-detection

Any entry chunk containing a shebang (e.g. #!/usr/bin/env node) now causes tsdown to write a bin field in package.json automatically. The semantics differ slightly from explicit bin: true:

Value Single shebang Multiple shebangs No shebangs
(unset) Auto-set bin Warn, skip Silent
true Auto-set bin Throw Warn
false No bin No bin No bin

To opt out entirely:

export default defineConfig({
  exports: { bin: false },
})

   🚀 Features

   🐞 Bug Fixes

  • debug: Enhance debug logging for pack tarball  -  by @sxzz and Copilot (5de04)
  • exports: Detect types fields nested in conditional exports  -  by @sxzz (82fa1)
    View changes on GitHub

v0.21.10

22 Apr 15:55
Immutable release. Only release title and notes can be modified.
v0.21.10
53d495b

Choose a tag to compare

   🚀 Features

    View changes on GitHub

v0.21.9

16 Apr 10:45
v0.21.9
752c3e5

Choose a tag to compare

   🚀 Features

  • Upgrade rolldown  -  by @sxzz (2d74e)
  • config: Track transitive config dependencies for watch reload  -  by @sxzz in #919 (16e27)
  • exports: Add bin to publishConfig when devExports is enabled  -  by @sxzz in #911 (60592)
  • plugin: Add tsdownConfig and tsdownConfigResolved plugin hooks  -  by @sxzz in #918 (665e5)

   🐞 Bug Fixes

    View changes on GitHub

v0.21.8

13 Apr 13:09
v0.21.8
ded1b9c

Choose a tag to compare

   🚀 Features

   🐞 Bug Fixes

  • Export type only for cjs dts re-export  -  by @sxzz (25510)
  • Exclude shim file from bundled dependency hint  -  by @sxzz in #909 (3f8de)
  • dts: Skip cjs dts reexport for non-entry chunks  -  by @sxzz (5fee2)
    View changes on GitHub