Releases: rolldown/tsdown
Release list
v0.22.4
🚀 Features
🐞 Bug Fixes
- Respect failOnWarn regardless of logger level - by @spokodev and @sxzz in #960 (f635a)
- create-tsdown: Skip cd hint for current directory - by @jong-kyung in #1002 (66983)
- css: Generate source maps to avoid
SOURCEMAP_BROKENwarning - by @ocavue in #982 (84b7c) - pkg: Await readFile before removing temp pack directory - by @azais-corentin in #999 (c0a48)
🏎 Performance
View changes on GitHub
v0.22.3
v0.22.2
v0.22.1
v0.22.0
🚨 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
- Upgrade rolldown to 1.0.0-rc.18 - by @sxzz (66085)
- Upgrade rolldown to v1.0.0 - by @sxzz (fabba)
- exports: Auto-enable bin detection by default - by @sxzz in #873 (abda9)
🐞 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 tsxIf 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
No significant changes
View changes on GitHub
v0.22.0-beta.2
v0.22.0-beta.1
🚨 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 tsxIf 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
v0.21.9
🚀 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
tsdownConfigandtsdownConfigResolvedplugin hooks - by @sxzz in #918 (665e5)
🐞 Bug Fixes
- Skip package.json writting when content is deeply equal - by @ocavue and @sxzz in #913 (d8e1c)
- Skip Node.js version check in Bun - by @sxzz (38afd)
- css: Detect css modules from full id for vue virtual sfc styles - by @sxzz in #917 (e6021)