Skip to content

fix(vuetify): separate composable auto-imports from component resolution#29

Open
BatLeDev wants to merge 1 commit intomainfrom
fix/vuetify-vite-exports
Open

fix(vuetify): separate composable auto-imports from component resolution#29
BatLeDev wants to merge 1 commit intomainfrom
fix/vuetify-vite-exports

Conversation

@BatLeDev
Copy link
Copy Markdown
Member

@BatLeDev BatLeDev commented Mar 27, 2026

Summary

  • autoImports in lib-vuetify/vite.ts previously mixed composables (from lib-vue) with .vue component default exports. This was a bug: unplugin-auto-import only handles <script>-level imports, not template component resolution. The .vue entries had no effect and caused Vite "Cannot optimize dependency" warnings since esbuild cannot pre-bundle .vue files.
  • autoImports now re-exports lib-vue composables only. Backwards-compatible: existing consumers importing autoImports from lib-vuetify keep working unchanged — they get the same composables as before, without the broken .vue entries.
  • New componentsResolver for unplugin-vue-components: properly resolves Df-prefixed components (e.g. <DfPersonalMenu> or <df-personal-menu>) to their @data-fair/lib-vuetify/*.vue modules.
  • Added TSDoc with usage examples on autoImports (in both lib-vue and lib-vuetify) and componentsResolver.

Migration

To enable component auto-resolution, add the resolver:

import { componentsResolver } from '@data-fair/lib-vuetify/vite.js'
import Components from 'unplugin-vue-components/vite'

Components({ resolvers: [componentsResolver] })

Test plan

  • Tested in portals/ui with <df-personal-menu> without manual import — component resolves correctly
  • "Cannot optimize dependency" warnings for .vue files are gone

Previously, autoImports in lib-vuetify mixed composables (from lib-vue) with
.vue component default exports. This was incorrect: unplugin-auto-import
handles script-level imports only, not template component resolution.
The .vue entries had no effect and caused "Cannot optimize dependency" warnings
from Vite since esbuild cannot pre-bundle .vue files.

autoImports now re-exports lib-vue composables only (backwards-compatible,
existing consumers using autoImports keep working unchanged).

A new componentsResolver is added for unplugin-vue-components, which properly
resolves Df-prefixed components (e.g. <DfPersonalMenu> or <df-personal-menu>)
to their @data-fair/lib-vuetify/*.vue modules.

Also adds TSDoc to autoImports, componentsResolver, and settingsPath.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant