Upgrading tsdown 0.16 to 0.17
Breaking0.16.8 → 0.17.4Breaking7New11Changed2Fixed12
BreakingUpgrade verdict
6 breaking changes.
In plain terms
- Enable failOnWarn by default in CI - (245e7).
- Remove unconfig from configLoader - (9d6a7).
- refactor!(attw): rename profile value from esmOnly to esm-only - .
- copy: Sync behavior of rollup-plugin-copy - (e864b).
Must act Top 3 of 6 that need code or config changes
Adds defu ^6.1.4, import-without-cache ^0.2.3.
Drops chokidar, diff.
Installs 75 packages in all (was 77).
What you must change
Breaking6
Enable failOnWarn by default in CI - (245e7).
failOnWarnRemove unconfig from configLoader - (9d6a7).
unconfigrefactor!(attw): rename profile value from esmOnly to esm-only - .
profileesmOnlyesm-onlycopy: Sync behavior of rollup-plugin-copy - (e864b).
rollup-plugin-copyRolldown native watcher - (1c4f8).
Support exports, publint, attw for multi-configs - (f889a).
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
export { TsdownChunks } - changed:
function build(userOptions?: InlineConfig): Promise<void> → function build(userOptions?: InlineConfig): Promise<TsdownBundle[]> - changed:
function buildSingle(config: ResolvedConfig, clean: () => Promise<void>): Promise<(() => Promise<void>) | undefined> → function buildSingle(config: ResolvedConfig, configFiles: string[], isDualFormat: boolean, clean: () => Promise<void>, restart: () => void, done: (bundle: TsdownBundle) => Promise<void>): Promise<TsdownBundle> - added:
export { PackageJsonWithPath } - added:
export { Rolldown } - added:
export { RolldownChunk } - added:
export { TsdownBundle }
- removed:
interface E - removed:
interface k - removed:
property A.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void> - removed:
property A.'build:done': (ctx: BuildContext) => void | Promise<void> - removed:
property A.'build:prepare': (ctx: BuildContext) => void | Promise<void> - removed:
property C.css?: string - removed:
property C.dts?: string - removed:
property C.js?: string - removed:
property E.dts?: string - removed:
property E.js?: string - removed:
property L.level?: 'error' | 'warn' - removed:
property L.profile?: 'strict' | 'node16' | 'esm-only' - removed:
property N.clean?: boolean - removed:
property N.devtools?: boolean | Partial<StartOptions> - removed:
property O.hooks: Hookable<TsdownHooks> - removed:
property P.from: string - removed:
property P.to: string - removed:
property j.all?: boolean - removed:
property j.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: TsdownChunks; outDir: string; isPublish: boolean }) => Awaitable<Record<string, any>> - removed:
property j.devExports?: boolean | string - removed:
property k.buildOptions: BuildOptions - removed:
property w.format: NormalizedFormat - removed:
property w.options: InputOptions - removed:
property w.pkgType?: PackageType - removed:
type D = 'module' | 'commonjs' | undefined - removed:
type F = Arrayable<string | CopyEntry> - removed:
type I = (options: ResolvedConfig) => Awaitable<CopyOptions> - removed:
type x = ChunkAddonObject | ChunkAddonFunction | string - changed:
function v(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, name?: string, isMultiFormat?: boolean): Plugin → function v(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, nameLabel?: string, isDualFormat?: boolean): Plugin - changed:
interface C → interface C extends AsyncDisposable - changed:
interface L extends CheckPackageOptions → interface L - changed:
interface N extends NonNullable<InputOptions['debug']> → interface N - changed:
interface j → interface j extends PackageJson - changed:
interface w → interface w extends CheckPackageOptions - changed:
property O.options: ResolvedConfig → property O.options: InputOptions - changed:
property f.format?: Format | Format[] → property f.format?: Format | Format[] | Partial<Record<Format, Partial<ResolvedConfig>>> - changed:
property i.configLoader?: 'auto' | 'native' | 'unconfig' | 'unrun' → property i.configLoader?: 'auto' | 'native' | 'unrun' - changed:
property i.filter?: RegExp | string | string[] → property i.filter?: RegExp | Arrayable<string> - changed:
type M = Partial<Record<NormalizedFormat, Array<OutputChunk | OutputAsset>>> → type M = 'module' | 'commonjs' | undefined - changed:
type S = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined → type S = (OutputChunk | OutputAsset) & { outDir: string } - changed:
type T = (context: OutExtensionContext) => OutExtensionObject | undefined → type T = ChunkAddonObject | ChunkAddonFunction | string - added:
interface D - added:
interface F - added:
interface I extends NonNullable<InputOptions['debug']> - added:
interface x - added:
property A.dts?: string - added:
property A.js?: string - added:
property C.chunks: RolldownChunk[] - added:
property C.config: ResolvedConfig - added:
property D.css?: string - added:
property D.dts?: string - added:
property D.js?: string - added:
property F.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void> - added:
property F.'build:done': (ctx: BuildContext & { chunks: RolldownChunk[] }) => void | Promise<void> - added:
property F.'build:prepare': (ctx: BuildContext) => void | Promise<void> - added:
property I.clean?: boolean - added:
property I.devtools?: boolean | Partial<StartOptions> - added:
property L.flatten?: boolean - added:
property L.from: string | string[] - added:
property L.rename?: string | ((name: string, extension: string, fullPath: string) => string) - added:
property L.to?: string - added:
property L.verbose?: boolean - added:
property N.hooks: Hookable<TsdownHooks> - added:
property N.options: ResolvedConfig - added:
property O.format: NormalizedFormat - added:
property O.pkgType?: PackageType - added:
property P.buildOptions: BuildOptions - added:
property f.write?: boolean - added:
property j.packageJsonPath: string - added:
property w.level?: 'error' | 'warn' - added:
property w.profile?: 'strict' | 'node16' | 'esm-only' - added:
property x.all?: boolean - added:
property x.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: ChunksByFormat; isPublish: boolean }) => Awaitable<Record<string, any>> - added:
property x.devExports?: boolean | string - added:
property x.exclude?: (RegExp | string)[] - added:
type E = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined - added:
type R = Arrayable<string | CopyEntry> - added:
type k = (context: OutExtensionContext) => OutExtensionObject | undefined - added:
type z = (options: ResolvedConfig) => Awaitable<CopyOptions>
- changed:
function ShebangPlugin(logger: Logger, cwd: string, name?: string, isMultiFormat?: boolean): Plugin → function ShebangPlugin(logger: Logger, cwd: string, nameLabel?: string, isDualFormat?: boolean): Plugin - added:
function WatchPlugin(configFiles: string[], { config, chunks }: TsdownBundle): Plugin