Upgrading tsdown 0.10 to 0.11
Breaking0.10.2 → 0.11.13Breaking3Platform1New15Changed9Fixed16Other1
BreakingUpgrade verdict
3 breaking changes and a platform requirement change.
In plain terms
- The type declaration build now supports the eager and parallel options, and no longer uses a virtual file system when running the TypeScript compiler for declarations.
- You may now need to install `unplugin-lightningcss` yourself instead of getting it automatically.
- Declaration file generation uses a newer plugin and a rewritten resolver, which may change how types are resolved.
- You need Node.js version 20.11.0 or newer to use this package; Node 18 no longer works.
Must act 4 items need code or config changes
Adds semver ^7.7.2.
Drops consola, lightningcss, unplugin-lightningcss.
Installs 58 packages in all (was 102).
What you must change
Breaking3
Upgrades the dts plugin to support the
eager and parallel options and drops vfs for dts tsc.eagerparallelMakes
unplugin-lightningcss a peer dependency.unplugin-lightningcssUpgrades the dts plugin and reworks the dts resolver.
Platform1
Requires Node.js >= v20.11.0 and drops support for Node 18.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
function defineConfig$1(options: UserConfig | UserConfigFn): UserConfig | UserConfigFn
- removed:
function defineConfig$1(options: UserConfig): UserConfig - removed:
function defineConfig$1(options: UserConfigFn): UserConfigFn
- changed:
const logger: ConsolaInstance → const logger: Logger - added:
export { UserConfigFn }
- removed:
function ReportPlugin$1(options: ReportOptions, cwd: string, cjsDts?: boolean): Plugin - removed:
interface BuildContext - removed:
interface Options - removed:
interface TsdownHooks - removed:
property BuildContext.hooks: Hookable<TsdownHooks> - removed:
property BuildContext.options: ResolvedOptions - removed:
property BuildContext.pkg?: PackageJson - removed:
property Options.alias?: Record<string, string> - removed:
property Options.clean?: boolean | string[] - removed:
property Options.config?: boolean | string - removed:
property Options.define?: Record<string, string> - removed:
property Options.dts?: boolean | Options$1 - removed:
property Options.entry?: InputOption - removed:
property Options.env?: Record<string, any> - removed:
property Options.external?: ExternalOption - removed:
property Options.fixedExtension?: boolean - removed:
property Options.format?: Format | Format[] - removed:
property Options.fromVite?: boolean | 'vitest' - removed:
property Options.globalName?: string - removed:
property Options.hooks?: Partial<TsdownHooks> | ((hooks: Hookable<TsdownHooks>) => Awaitable<void>) - removed:
property Options.inputOptions?: InputOptions | ((options: InputOptions, format: NormalizedFormat) => Awaitable<InputOptions | void | null>) - removed:
property Options.minify?: boolean | 'dce-only' | MinifyOptions - removed:
property Options.noExternal?: Arrayable<string | RegExp> | ((id: string, importer: string | undefined) => boolean | null | undefined | void) - removed:
property Options.onSuccess?: string | ((config: ResolvedOptions) => void | Promise<void>) - removed:
property Options.outDir?: string - removed:
property Options.outExtensions?: OutExtensionFactory - removed:
property Options.outputOptions?: OutputOptions | ((options: OutputOptions, format: NormalizedFormat) => Awaitable<OutputOptions | void | null>) - removed:
property Options.platform?: 'node' | 'neutral' | 'browser' - removed:
property Options.plugins?: InputOptions['plugins'] - removed:
property Options.publint?: boolean | Options - removed:
property Options.report?: boolean | ReportOptions - removed:
property Options.shims?: boolean - removed:
property Options.silent?: boolean - removed:
property Options.skipNodeModulesBundle?: boolean - removed:
property Options.sourcemap?: Sourcemap - removed:
property Options.target?: string | string[] - removed:
property Options.treeshake?: boolean - removed:
property Options.tsconfig?: string | boolean - removed:
property Options.unused?: boolean | Options$2 - removed:
property Options.watch?: boolean | string | string[] - removed:
property TsdownHooks.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void> - removed:
property TsdownHooks.'build:done': (ctx: BuildContext) => void | Promise<void> - removed:
property TsdownHooks.'build:prepare': (ctx: BuildContext) => void | Promise<void> - removed:
type ResolvedOptions = Omit<Overwrite<MarkPartial<Options$3, 'globalName' | 'inputOptions' | 'outputOptions' | 'minify' | 'define' | 'alias' | 'external' | 'noExternal' | 'onSuccess'… - removed:
type UserConfig = Arrayable<Omit<Options$3, 'config'>> - removed:
type UserConfigFn = (cliOptions: Options$3) => Awaitable<UserConfig>
- changed:
function ShebangPlugin(cwd: string): Plugin → function ShebangPlugin(cwd: string, name?: string, isMultiFormat?: boolean): Plugin - added:
function NodeProtocolPlugin(): Plugin
- added:
function ReportPlugin$1(options: ReportOptions, cwd: string, cjsDts?: boolean, name?: string, isMultiFormat?: boolean): Plugin - added:
interface BuildContext - added:
interface Options - added:
interface TsdownHooks - added:
property BuildContext.hooks: Hookable<TsdownHooks> - added:
property BuildContext.options: ResolvedOptions - added:
property BuildContext.pkg?: PackageJson - added:
property Options.alias?: Record<string, string> - added:
property Options.clean?: boolean | string[] - added:
property Options.config?: boolean | string - added:
property Options.copy?: CopyOptions | CopyOptionsFn - added:
property Options.cwd?: string - added:
property Options.define?: Record<string, string> - added:
property Options.dts?: boolean | Options$1 - added:
property Options.entry?: InputOption - added:
property Options.env?: Record<string, any> - added:
property Options.external?: ExternalOption - added:
property Options.filter?: RegExp | string | string[] - added:
property Options.fixedExtension?: boolean - added:
property Options.format?: Format | Format[] - added:
property Options.fromVite?: boolean | 'vitest' - added:
property Options.globalName?: string - added:
property Options.hash?: boolean - added:
property Options.hooks?: Partial<TsdownHooks> | ((hooks: Hookable<TsdownHooks>) => Awaitable<void>) - added:
property Options.ignoreWatch?: string | string[] - added:
property Options.inputOptions?: InputOptions | ((options: InputOptions, format: NormalizedFormat) => Awaitable<InputOptions | void | null>) - added:
property Options.loader?: ModuleTypes - added:
property Options.minify?: boolean | 'dce-only' | MinifyOptions - added:
property Options.name?: string - added:
property Options.noExternal?: Arrayable<string | RegExp> | ((id: string, importer: string | undefined) => boolean | null | undefined | void) - added:
property Options.onSuccess?: string | ((config: ResolvedOptions) => void | Promise<void>) - added:
property Options.outDir?: string - added:
property Options.outExtensions?: OutExtensionFactory - added:
property Options.outputOptions?: OutputOptions | ((options: OutputOptions, format: NormalizedFormat) => Awaitable<OutputOptions | void | null>) - added:
property Options.platform?: 'node' | 'neutral' | 'browser' - added:
property Options.plugins?: InputOptions['plugins'] - added:
property Options.publicDir?: CopyOptions | CopyOptionsFn - added:
property Options.publint?: boolean | Options - added:
property Options.removeNodeProtocol?: boolean - added:
property Options.report?: boolean | ReportOptions - added:
property Options.shims?: boolean - added:
property Options.silent?: boolean - added:
property Options.skipNodeModulesBundle?: boolean - added:
property Options.sourcemap?: Sourcemap - added:
property Options.target?: string | string[] | false - added:
property Options.treeshake?: boolean - added:
property Options.tsconfig?: string | boolean - added:
property Options.unused?: boolean | Options$2 - added:
property Options.watch?: boolean | string | string[] - added:
property Options.workspace?: Workspace | Arrayable<string> | true - added:
property TsdownHooks.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void> - added:
property TsdownHooks.'build:done': (ctx: BuildContext) => void | Promise<void> - added:
property TsdownHooks.'build:prepare': (ctx: BuildContext) => void | Promise<void> - added:
type ResolvedOptions = Omit<Overwrite<MarkPartial<Omit<Options$3, 'publicDir' | 'workspace' | 'filter'>, 'globalName' | 'inputOptions' | 'outputOptions' | 'minify' | 'define' | 'alia… - added:
type UserConfig = Arrayable<Omit<Options$3, 'config' | 'filter'>> - added:
type UserConfigFn = (cliOptions: Options$3) => Awaitable<UserConfig>