Skip to content

Upgrading unplugin-auto-import 20 to 21

Breaking20.3.0 → 21.1.0Breaking1Platform1New1Changed1Fixed2

BreakingUpgrade verdict

1 breaking change and a platform requirement change.

  • The package can now only be loaded with modern JavaScript import syntax, not with require().
  • You must run Node.js 20.19.0 or newer to use this version.
2 items need code or config changes

Node.js requirement changed in 21.0.0: >=14 → >=20.19.0.

Installs 31 packages in all (was 30).

Also installs @rolldown/pluginutils.

Moves js-tokens 9.0.1 → 10.0.0, magic-string 0.30.21 → 1.4.5, strip-literal 3.1.0 → 4.0.0, unimport 5.7.0 → 6.5.0, unplugin 2.3.11 → 3.7.0. Your build may pick other versions.

Breaking1
Moves the package to ESM-only, removing CommonJS entry points.
Platform1
Drops support for Node.js versions below 20.19.0.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • removed: export = export_default
  • removed: function export_default(options: Options): { name: string; hooks: { 'astro:config:setup': (astro: any) => Promise<void> } }
  • removed: const _default: (options: Options) => esbuild0.Plugin
  • removed: export = _default
  • changed: const default: (options: Options) => esbuild0.Plugin → const default: (options: Options) => import('unplugin').EsbuildPlugin
  • added: const 'module.exports': (options: Options) => import('unplugin').EsbuildPlugin
  • removed: const _default: unplugin0.UnpluginInstance<Options, boolean>
  • removed: export = _default
  • changed: const default: unplugin0.UnpluginInstance<Options, boolean> → const default: import('unplugin').UnpluginInstance<Options, boolean>
  • removed: const _default: _nuxt_schema0.NuxtModule<Options, Options, false>
  • removed: export = _default
  • changed: const default: _nuxt_schema0.NuxtModule<Options, Options, false> → const default: import('@nuxt/schema').NuxtModule<Options, Options, false>
  • removed: const _default: (options: Options) => rolldown0.Plugin<any> | rolldown0.Plugin<any>[]
  • removed: export = _default
  • changed: const default: (options: Options) => rolldown0.Plugin<any> | rolldown0.Plugin<any>[] → const default: (options: Options) => import('rolldown').Plugin<any>[] | import('rolldown').Plugin<any>
  • added: const 'module.exports': (options: Options) => import('rolldown').Plugin<any>[] | import('rolldown').Plugin<any>
  • removed: const _default: (options: Options) => rollup0.Plugin<any> | rollup0.Plugin<any>[]
  • removed: export = _default
  • changed: const default: (options: Options) => rollup0.Plugin<any> | rollup0.Plugin<any>[] → const default: (options: Options) => import('unplugin').RollupPlugin<any>[] | import('unplugin').RollupPlugin<any>
  • added: const 'module.exports': (options: Options) => import('unplugin').RollupPlugin<any>[] | import('unplugin').RollupPlugin<any>
  • removed: const _default: (options: Options) => RspackPluginInstance
  • removed: export = _default
  • added: const 'module.exports': (options: Options) => RspackPluginInstance
  • removed: interface a
  • removed: interface f
  • removed: interface i extends Import
  • removed: interface l
  • removed: interface m
  • removed: interface p
  • removed: interface r
  • removed: interface t
  • removed: property a.importName?: string
  • removed: property a.name?: string
  • removed: property a.path: string
  • removed: property a.sideEffects?: SideEffectsInfo
  • removed: property f.as?: string
  • removed: property f.from: string
  • removed: property f.name?: string
  • removed: property i.__source?: 'dir' | 'resolver'
  • removed: property i.sideEffects?: SideEffectsInfo
  • removed: property l.biomelintrc?: BiomeLintrc
  • removed: property l.defaultExportByFilename?: boolean
  • removed: property l.dirs?: (string | ScanDir)[]
  • removed: property l.dirsScanOptions?: Omit<ScanDirExportsOptions, 'cwd'>
  • removed: property l.dts?: string | boolean
  • removed: property l.dtsMode?: 'overwrite' | 'append'
  • removed: property l.dtsPreserveExts?: boolean
  • removed: property l.dumpUnimportItems?: boolean | string
  • removed: property l.eslintrc?: ESLintrc
  • removed: property l.exclude?: FilterPattern
  • removed: property l.ignore?: (string | RegExp)[]
  • removed: property l.ignoreDts?: (string | RegExp)[]
  • removed: property l.imports?: Arrayable<ImportsMap | PresetName | InlinePreset>
  • removed: property l.include?: FilterPattern
  • removed: property l.injectAtEnd?: boolean
  • removed: property l.packagePresets?: (PackagePreset | string)[]
  • removed: property l.parser?: UnimportOptions['parser']
  • removed: property l.resolvers?: Arrayable<Arrayable<Resolver>>
  • removed: property l.viteOptimizeDeps?: boolean
  • removed: property l.vueDirectives?: true | AddonVueDirectivesOptions
  • removed: property l.vueTemplate?: boolean
  • removed: property m.glob: string
  • removed: property m.types?: boolean
  • removed: property p.resolve: ResolverFunction
  • removed: property p.type: 'component' | 'directive'
  • removed: property r.enabled?: boolean
  • removed: property r.filepath?: string
  • removed: property r.globalsPropValue?: ESLintGlobalsPropValue
  • removed: property t.enabled?: boolean
  • removed: property t.filepath?: string
  • removed: type c = Required<ScanDir>
  • removed: type d = (name: string) => Awaitable<string | ResolverResult | ImportExtended | null | undefined | void>
  • removed: type g = keyof typeof presets
  • removed: type h = Arrayable<ResolverResult | string> | undefined
  • removed: type n = boolean | 'readonly' | 'readable' | 'writable' | 'writeable'
  • removed: type o = [string, string]
  • removed: type s = Record<string, (string | ImportNameAlias)[]>
  • removed: type u = ResolverFunction | ResolverResultObject
  • added: interface a
  • added: interface f
  • added: interface i extends Import
  • added: interface l
  • added: interface m
  • added: interface p
  • added: interface r
  • added: interface t
  • added: property a.importName?: string
  • added: property a.name?: string
  • added: property a.path: string
  • added: property a.sideEffects?: SideEffectsInfo
  • added: property f.as?: string
  • added: property f.from: string
  • added: property f.name?: string
  • added: property i.__source?: 'dir' | 'resolver'
  • added: property i.sideEffects?: SideEffectsInfo
  • added: property l.biomelintrc?: BiomeLintrc
  • added: property l.defaultExportByFilename?: boolean
  • added: property l.dirs?: (string | ScanDir)[]
  • added: property l.dirsScanOptions?: Omit<ScanDirExportsOptions, 'cwd'>
  • added: property l.dts?: string | boolean
  • added: property l.dtsMode?: 'overwrite' | 'append'
  • added: property l.dtsPreserveExts?: boolean
  • added: property l.dumpUnimportItems?: boolean | string
  • added: property l.eslintrc?: ESLintrc
  • added: property l.exclude?: FilterPattern
  • added: property l.ignore?: (string | RegExp)[]
  • added: property l.ignoreDts?: (string | RegExp)[]
  • added: property l.imports?: Arrayable<ImportsMap | PresetName | InlinePreset>
  • added: property l.include?: FilterPattern
  • added: property l.injectAtEnd?: boolean
  • added: property l.packagePresets?: (PackagePreset | string)[]
  • added: property l.parser?: UnimportOptions['parser']
  • added: property l.resolvers?: Arrayable<Arrayable<Resolver>>
  • added: property l.viteOptimizeDeps?: boolean
  • added: property l.vueDirectives?: true | AddonVueDirectivesOptions
  • added: property l.vueTemplate?: boolean
  • added: property m.glob: string
  • added: property m.types?: boolean
  • added: property p.resolve: ResolverFunction
  • added: property p.type: 'component' | 'directive'
  • added: property r.enabled?: boolean
  • added: property r.filepath?: string
  • added: property r.globalsPropValue?: ESLintGlobalsPropValue
  • added: property t.enabled?: boolean
  • added: property t.filepath?: string
  • added: type c = Required<ScanDir>
  • added: type d = (name: string) => Awaitable<string | ResolverResult | ImportExtended | null | undefined | void>
  • added: type g = keyof typeof presets
  • added: type h = Arrayable<ResolverResult | string> | undefined
  • added: type n = boolean | 'readonly' | 'readable' | 'writable' | 'writeable'
  • added: type o = [string, string]
  • added: type s = Record<string, (string | ImportNameAlias)[]>
  • added: type u = ResolverFunction | ResolverResultObject
  • removed: interface a
  • removed: interface f
  • removed: interface i extends Import
  • removed: interface l
  • removed: interface m
  • removed: interface p
  • removed: interface r
  • removed: interface t
  • removed: property a.importName?: string
  • removed: property a.name?: string
  • removed: property a.path: string
  • removed: property a.sideEffects?: SideEffectsInfo
  • removed: property f.as?: string
  • removed: property f.from: string
  • removed: property f.name?: string
  • removed: property i.__source?: 'dir' | 'resolver'
  • removed: property i.sideEffects?: SideEffectsInfo
  • removed: property l.biomelintrc?: BiomeLintrc
  • removed: property l.defaultExportByFilename?: boolean
  • removed: property l.dirs?: (string | ScanDir)[]
  • removed: property l.dirsScanOptions?: Omit<ScanDirExportsOptions, 'cwd'>
  • removed: property l.dts?: string | boolean
  • removed: property l.dtsMode?: 'overwrite' | 'append'
  • removed: property l.dtsPreserveExts?: boolean
  • removed: property l.dumpUnimportItems?: boolean | string
  • removed: property l.eslintrc?: ESLintrc
  • removed: property l.exclude?: FilterPattern
  • removed: property l.ignore?: (string | RegExp)[]
  • removed: property l.ignoreDts?: (string | RegExp)[]
  • removed: property l.imports?: Arrayable<ImportsMap | PresetName | InlinePreset>
  • removed: property l.include?: FilterPattern
  • removed: property l.injectAtEnd?: boolean
  • removed: property l.packagePresets?: (PackagePreset | string)[]
  • removed: property l.parser?: UnimportOptions['parser']
  • removed: property l.resolvers?: Arrayable<Arrayable<Resolver>>
  • removed: property l.viteOptimizeDeps?: boolean
  • removed: property l.vueDirectives?: true | AddonVueDirectivesOptions
  • removed: property l.vueTemplate?: boolean
  • removed: property m.glob: string
  • removed: property m.types?: boolean
  • removed: property p.resolve: ResolverFunction
  • removed: property p.type: 'component' | 'directive'
  • removed: property r.enabled?: boolean
  • removed: property r.filepath?: string
  • removed: property r.globalsPropValue?: ESLintGlobalsPropValue
  • removed: property t.enabled?: boolean
  • removed: property t.filepath?: string
  • removed: type c = Required<ScanDir>
  • removed: type d = (name: string) => Awaitable<string | ResolverResult | ImportExtended | null | undefined | void>
  • removed: type g = keyof typeof presets
  • removed: type h = Arrayable<ResolverResult | string> | undefined
  • removed: type n = boolean | 'readonly' | 'readable' | 'writable' | 'writeable'
  • removed: type o = [string, string]
  • removed: type s = Record<string, (string | ImportNameAlias)[]>
  • removed: type u = ResolverFunction | ResolverResultObject
  • removed: const _default: (options: Options) => vite0.Plugin<any> | vite0.Plugin<any>[]
  • removed: export = _default
  • changed: const default: (options: Options) => vite0.Plugin<any> | vite0.Plugin<any>[] → const default: (options: Options) => import('vite').Plugin<any>[] | import('vite').Plugin<any>
  • added: const 'module.exports': (options: Options) => import('vite').Plugin<any>[] | import('vite').Plugin<any>
  • removed: const _default: (options: Options) => webpack0.WebpackPluginInstance
  • removed: export = _default
  • changed: const default: (options: Options) => webpack0.WebpackPluginInstance → const default: (options: Options) => import('webpack').WebpackPluginInstance
  • added: const 'module.exports': (options: Options) => import('webpack').WebpackPluginInstance