Upgrading unplugin-auto-import 20 to 21
Breaking20.3.0 → 21.1.0Breaking1Platform1New1Changed1Fixed2
BreakingUpgrade verdict
1 breaking change and a platform requirement change.
In plain terms
- 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.
Must act 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.
What you must change
Breaking1
Moves the package to ESM-only, removing CommonJS entry points.
Platform1
Drops support for Node.js versions below 20.19.0.
API changes
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