Skip to content

Upgrading unplugin-vue-components 30 to 31

Breaking30.0.0 → 31.1.0Breaking2Platform1New1Changed1Fixed2

BreakingUpgrade verdict

2 breaking changes and a platform requirement change.

  • Projects still on Vue 2 or using the element-ui resolver can no longer use this package for them.
  • The package can now only be loaded as an ES module, so older CommonJS require() setups will stop working.
  • You must run Node.js 20.19.0 or newer to use this version.
3 items need code or config changes

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

Adds obug ^2.1.1, picomatch ^4.0.3.

Drops debug.

Installs 26 packages in all (was 27).

No longer installs ms.

Moves chokidar 4.0.3 → 5.0.0, readdirp 4.1.2 → 5.1.1. Your build may pick other versions.

Breaking2
Drops Vue 2 support and removes the element-ui resolver.
element-ui
Moves the package to ESM only.
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: const _default: (options: Options) => esbuild0.Plugin
  • removed: export = _default
  • changed: const default: (options: Options) => esbuild0.Plugin → const default: (options: Options) => esbuild.Plugin
  • added: const 'module.exports': (options: Options) => esbuild.Plugin
  • removed: export { SupportedTransformer }
  • changed: const default: unplugin0.UnpluginInstance<Options, boolean> → const default: 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: NuxtModule<Options, Options, false>
  • removed: function ElementUiResolver(options?: ElementUiResolverOptions): ComponentResolver
  • removed: interface ElementUiResolverOptions
  • removed: property ElementUiResolverOptions.exclude?: RegExp
  • removed: property ElementUiResolverOptions.importStyle?: boolean | 'css' | 'sass'
  • removed: property VarletUIResolverOptions.version?: 'vue3' | 'vue2'
  • added: property AntDesignVueResolverOptions.resolveDateLibrary?: AntDesignVueResolveDateLibrary
  • added: type AntDesignVueResolveDateLibrary = 'dayjs' | 'date-fns' | 'moment'
  • 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) => rolldown.Plugin<any>[] | rolldown.Plugin<any>
  • added: const 'module.exports': (options: Options) => rolldown.Plugin<any>[] | 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) => rollup.Plugin<any>[] | rollup.Plugin<any>
  • added: const 'module.exports': (options: Options) => rollup.Plugin<any>[] | rollup.Plugin<any>
  • removed: const _default: (options: Options) => RspackPluginInstance
  • removed: export = _default
  • added: const 'module.exports': (options: Options) => RspackPluginInstance
  • removed: export { SupportedTransformer }
  • removed: interface ComponentInfo extends ImportInfo
  • removed: interface ComponentResolverObject
  • removed: interface ImportInfo
  • removed: interface ImportInfoLegacy
  • removed: interface Options
  • removed: interface PublicPluginAPI
  • removed: interface TypeImport
  • removed: property ComponentInfo.sideEffects?: SideEffectsInfo
  • removed: property ComponentResolverObject.resolve: ComponentResolverFunction
  • removed: property ComponentResolverObject.type: 'component' | 'directive'
  • removed: property ImportInfo.as?: string
  • removed: property ImportInfo.from: string
  • removed: property ImportInfo.name?: string
  • removed: property ImportInfoLegacy.importName?: string
  • removed: property ImportInfoLegacy.name?: string
  • removed: property ImportInfoLegacy.path: string
  • removed: property ImportInfoLegacy.sideEffects?: SideEffectsInfo
  • removed: property Options.allowOverrides?: boolean
  • removed: property Options.collapseSamePrefixes?: boolean
  • removed: property Options.deep?: boolean
  • removed: property Options.directives?: boolean
  • removed: property Options.directoryAsNamespace?: boolean
  • removed: property Options.dirs?: string | string[]
  • removed: property Options.dts?: boolean | string
  • removed: property Options.dtsTsx?: boolean
  • removed: property Options.dumpComponentsInfo?: boolean | string
  • removed: property Options.exclude?: FilterPattern
  • removed: property Options.excludeNames?: FilterPattern
  • removed: property Options.extensions?: string | string[]
  • removed: property Options.globalNamespaces?: string[]
  • removed: property Options.globs?: string | string[]
  • removed: property Options.globsExclude?: string | string[]
  • removed: property Options.importPathTransform?: (path: string) => string | undefined
  • removed: property Options.include?: FilterPattern
  • removed: property Options.prefix?: string
  • removed: property Options.resolvers?: (ComponentResolver | ComponentResolver[])[]
  • removed: property Options.sourcemap?: boolean
  • removed: property Options.syncMode?: 'default' | 'append' | 'overwrite'
  • removed: property Options.transformer?: SupportedTransformer
  • removed: property Options.transformerUserResolveFunctions?: boolean
  • removed: property Options.types?: TypeImport[]
  • removed: property Options.version?: 2 | 2.7 | 3
  • removed: property PublicPluginAPI.findComponent: (name: string, filename?: string) => Promise<ComponentInfo | undefined>
  • removed: property PublicPluginAPI.stringifyImport: (info: ComponentInfo) => string
  • removed: property TypeImport.from: string
  • removed: property TypeImport.names: string[]
  • removed: type ComponentResolveResult = Awaitable<string | ComponentInfo | null | undefined | void>
  • removed: type ComponentResolver = ComponentResolverFunction | ComponentResolverObject
  • removed: type ComponentResolverFunction = (name: string) => ComponentResolveResult
  • removed: type ComponentsImportMap = Record<string, string[] | undefined>
  • removed: type Matcher = (id: string) => boolean | null | undefined
  • removed: type ResolvedOptions = Omit<Required<Options>, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration'> & { resolvers: ComponentResolverObject[]; extensions: string[]; di…
  • removed: type SideEffectsInfo = (ImportInfo | string)[] | ImportInfo | string | undefined
  • removed: type SupportedTransformer = 'vue3' | 'vue2'
  • removed: type Transformer = (code: string, id: string, path: string, query: Record<string, string>) => Awaitable<TransformResult | null>
  • removed: interface ComponentInfo extends ImportInfo
  • removed: interface ComponentResolverObject
  • removed: interface ImportInfo
  • removed: interface ImportInfoLegacy
  • removed: interface Options
  • removed: interface PublicPluginAPI
  • removed: interface TypeImport
  • removed: property ComponentInfo.sideEffects?: SideEffectsInfo
  • removed: property ComponentResolverObject.resolve: ComponentResolverFunction
  • removed: property ComponentResolverObject.type: 'component' | 'directive'
  • removed: property ImportInfo.as?: string
  • removed: property ImportInfo.from: string
  • removed: property ImportInfo.name?: string
  • removed: property ImportInfoLegacy.importName?: string
  • removed: property ImportInfoLegacy.name?: string
  • removed: property ImportInfoLegacy.path: string
  • removed: property ImportInfoLegacy.sideEffects?: SideEffectsInfo
  • removed: property Options.allowOverrides?: boolean
  • removed: property Options.collapseSamePrefixes?: boolean
  • removed: property Options.deep?: boolean
  • removed: property Options.directives?: boolean
  • removed: property Options.directoryAsNamespace?: boolean
  • removed: property Options.dirs?: string | string[]
  • removed: property Options.dts?: boolean | string
  • removed: property Options.dtsTsx?: boolean
  • removed: property Options.dumpComponentsInfo?: boolean | string
  • removed: property Options.exclude?: FilterPattern
  • removed: property Options.excludeNames?: FilterPattern
  • removed: property Options.extensions?: string | string[]
  • removed: property Options.globalNamespaces?: string[]
  • removed: property Options.globs?: string | string[]
  • removed: property Options.globsExclude?: string | string[]
  • removed: property Options.importPathTransform?: (path: string) => string | undefined
  • removed: property Options.include?: FilterPattern
  • removed: property Options.prefix?: string
  • removed: property Options.resolvers?: (ComponentResolver | ComponentResolver[])[]
  • removed: property Options.sourcemap?: boolean
  • removed: property Options.syncMode?: 'default' | 'append' | 'overwrite'
  • removed: property Options.transformer?: SupportedTransformer
  • removed: property Options.transformerUserResolveFunctions?: boolean
  • removed: property Options.types?: TypeImport[]
  • removed: property Options.version?: 2 | 2.7 | 3
  • removed: property PublicPluginAPI.findComponent: (name: string, filename?: string) => Promise<ComponentInfo | undefined>
  • removed: property PublicPluginAPI.stringifyImport: (info: ComponentInfo) => string
  • removed: property TypeImport.from: string
  • removed: property TypeImport.names: string[]
  • removed: type ComponentResolveResult = Awaitable<string | ComponentInfo | null | undefined | void>
  • removed: type ComponentResolver = ComponentResolverFunction | ComponentResolverObject
  • removed: type ComponentResolverFunction = (name: string) => ComponentResolveResult
  • removed: type ComponentsImportMap = Record<string, string[] | undefined>
  • removed: type Matcher = (id: string) => boolean | null | undefined
  • removed: type ResolvedOptions = Omit<Required<Options>, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration'> & { resolvers: ComponentResolverObject[]; extensions: string[]; di…
  • removed: type SideEffectsInfo = (ImportInfo | string)[] | ImportInfo | string | undefined
  • removed: type SupportedTransformer = 'vue3' | 'vue2'
  • removed: type Transformer = (code: string, id: string, path: string, query: Record<string, string>) => Awaitable<TransformResult | null>
  • added: interface a
  • added: interface c
  • added: interface d
  • added: interface h
  • added: interface s
  • added: interface t extends ImportInfo
  • added: interface u
  • added: property a.resolve: ComponentResolverFunction
  • added: property a.type: 'component' | 'directive'
  • added: property c.importName?: string
  • added: property c.name?: string
  • added: property c.path: string
  • added: property c.sideEffects?: SideEffectsInfo
  • added: property d.findComponent: (name: string, filename?: string) => Promise<ComponentInfo | undefined>
  • added: property d.stringifyImport: (info: ComponentInfo) => string
  • added: property h.from: string
  • added: property h.names: string[]
  • added: property s.as?: string
  • added: property s.from: string
  • added: property s.name?: string
  • added: property t.sideEffects?: SideEffectsInfo
  • added: property u.allowOverrides?: boolean
  • added: property u.collapseSamePrefixes?: boolean
  • added: property u.deep?: boolean
  • added: property u.directives?: boolean
  • added: property u.directoryAsNamespace?: boolean
  • added: property u.dirs?: string | string[]
  • added: property u.dts?: boolean | string
  • added: property u.dtsTsx?: boolean
  • added: property u.dumpComponentsInfo?: boolean | string
  • added: property u.exclude?: FilterPattern
  • added: property u.excludeNames?: FilterPattern
  • added: property u.extensions?: string | string[]
  • added: property u.globalNamespaces?: string[]
  • added: property u.globs?: string | string[]
  • added: property u.globsExclude?: string | string[]
  • added: property u.importPathTransform?: (path: string) => string | undefined
  • added: property u.include?: FilterPattern
  • added: property u.prefix?: string
  • added: property u.resolvers?: (ComponentResolver | ComponentResolver[])[]
  • added: property u.sourcemap?: boolean
  • added: property u.syncMode?: 'default' | 'append' | 'overwrite'
  • added: property u.transformerUserResolveFunctions?: boolean
  • added: property u.types?: TypeImport[]
  • added: type f = Omit<Required<Options>, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration'> & { resolvers: ComponentResolverObject[]; extensions: string[]; di…
  • added: type i = (name: string) => ComponentResolveResult
  • added: type l = (id: string) => boolean | null | undefined
  • added: type m = (code: string, id: string, path: string, query: Record<string, string>) => Awaitable<TransformResult | null>
  • added: type n = Awaitable<string | ComponentInfo | null | undefined | void>
  • added: type o = Record<string, string[] | undefined>
  • added: type p = (ImportInfo | string)[] | ImportInfo | string | undefined
  • added: type r = ComponentResolverFunction | ComponentResolverObject
  • removed: const _default: (options?: Options | undefined) => Plugin & { api: PublicPluginAPI }
  • removed: export = _default
  • changed: const default: (options?: Options | undefined) => Plugin & { api: PublicPluginAPI } → const default: (options?: Options | undefined) => Plugin<any> & { api: PublicPluginAPI }
  • added: const 'module.exports': (options?: Options | undefined) => Plugin<any> & { api: PublicPluginAPI }
  • removed: const _default: (options: Options) => webpack0.WebpackPluginInstance
  • removed: export = _default
  • changed: const default: (options: Options) => webpack0.WebpackPluginInstance → const default: (options: Options) => webpack.WebpackPluginInstance
  • added: const 'module.exports': (options: Options) => webpack.WebpackPluginInstance