Upgrading unplugin-vue-components 30 to 31
Breaking30.0.0 → 31.1.0Breaking2Platform1New1Changed1Fixed2
BreakingUpgrade verdict
2 breaking changes and a platform requirement change.
In plain terms
- 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.
Must act 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.
What you must change
Breaking2
Drops Vue 2 support and removes the element-ui resolver.
element-uiMoves the package to ESM only.
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:
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