Skip to content

Instantly share code, notes, and snippets.

@osbre
Last active August 4, 2025 09:50
Show Gist options
  • Save osbre/44ce193f9b0bf84936750b86c1ae74fc to your computer and use it in GitHub Desktop.
Save osbre/44ce193f9b0bf84936750b86c1ae74fc to your computer and use it in GitHub Desktop.
todo: debug why @inertiajs/vue3 resolver does not work
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import tailwindcss from '@tailwindcss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { VueUseComponentsResolver, VueUseDirectiveResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
server: {
host: '0.0.0.0',
port: 5173,
hmr: {
host: 'localhost',
port: 5173,
},
},
plugins: [
tailwindcss(),
AutoImport({
include: [
/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
/\.vue$/,
/\.vue\?vue/, // .vue
/\.vue\.[tj]sx?\?vue/, // .vue (vue-loader with experimentalInlineMatchResource enabled)
/\.md$/, // .md
],
viteOptimizeDeps: true,
dts: 'resources/js/types/auto-imports.d.ts',
imports: [
// presets
'vue', '@vueuse/core', '@vueuse/head',
// custom
{
'@inertiajs/vue3': ['usePage', 'useRemember', 'useForm'],
},
],
vueTemplate: true,
}),
Components({
dirs: ['resources/js/Components', 'resources/js/Layouts'],
dts: 'resources/js/types/components.d.ts',
allowOverrides: false,
resolvers: [
// @inertiajs/vue3 resolver
{
type: 'component',
resolve: (name) => {
if (name === 'Head' || name === 'Link') {
return { importName: name, path: '@inertiajs/vue3' }
}
}
},
VueUseComponentsResolver,
VueUseDirectiveResolver,
],
}),
laravel({
input: 'resources/js/app.ts',
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
],
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment