diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
index 5520690..b34fe6e 100644
--- a/docs/.vitepress/theme/index.ts
+++ b/docs/.vitepress/theme/index.ts
@@ -1,4 +1,5 @@
-import Theme from 'vitepress/theme'
+import type { Theme } from 'vitepress'
+import DefaultTheme from 'vitepress/theme'
import { inBrowser } from 'vitepress'
import VuetifyLayout from './VuetifyLayout.vue'
@@ -11,6 +12,6 @@ if (inBrowser)
import('./pwa')
export default {
- ...Theme,
+ extends: DefaultTheme,
Layout: VuetifyLayout,
-}
+} satisfies Theme
diff --git a/docs/guide/globals/directives.md b/docs/guide/globals/directives.md
index 7258738..42bfb20 100644
--- a/docs/guide/globals/directives.md
+++ b/docs/guide/globals/directives.md
@@ -8,6 +8,10 @@ By default, the module will not register any Vuetify directive. If you need to r
You can register all the directives or only the ones you need: check the [directives definition](https://github.com/userquin/vuetify-nuxt-module/blob/main/src/types.ts#L91-L92).
+## Ignore directives
+
+If you want to ignore some directives, you can use the `moduleOptions.ignoreDirectives` option. The module will configure the Vuetify Vite Plugin to [ignore](https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#ignoring-components-or-directives) the directives you specify.
+
## Examples
### Registering all the directives
diff --git a/docs/guide/index.md b/docs/guide/index.md
index 147bd62..d1f0a48 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -124,6 +124,12 @@ export interface MOptions {
* @default true
*/
includeTransformAssetsUrls?: boolean | Record
+ /**
+ * Directives Vuetify Vite Plugin should ignore.
+ *
+ * @since v0.15.1
+ */
+ ignoreDirectives?: DirectiveName | DirectiveName[]
/**
* Vuetify SSR client hints.
*
diff --git a/src/types.ts b/src/types.ts
index 9fc8bdd..2563a79 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -255,6 +255,12 @@ export interface MOptions {
* @default true
*/
includeTransformAssetsUrls?: boolean | Record
+ /**
+ * Directives Vuetify Vite Plugin should ignore.
+ *
+ * @since v0.15.1
+ */
+ ignoreDirectives?: DirectiveName | DirectiveName[]
/**
* Vuetify SSR client hints.
*
diff --git a/src/utils/configure-vite.ts b/src/utils/configure-vite.ts
index 1c003af..a2a5bc1 100644
--- a/src/utils/configure-vite.ts
+++ b/src/utils/configure-vite.ts
@@ -1,5 +1,6 @@
import type { Nuxt } from '@nuxt/schema'
import defu from 'defu'
+import type { Options } from '@vuetify/loader-shared'
import { vuetifyStylesPlugin } from '../vite/vuetify-styles-plugin'
import { vuetifyConfigurationPlugin } from '../vite/vuetify-configuration-plugin'
import { vuetifyIconsPlugin } from '../vite/vuetify-icons-configuration-plugin'
@@ -41,7 +42,17 @@ export function configureVite(configKey: string, nuxt: Nuxt, ctx: VuetifyNuxtCon
viteInlineConfig.vue.template.transformAssetUrls = transformAssetUrls
}
- viteInlineConfig.plugins.push(vuetifyImportPlugin({}))
+ // fix #236
+ const vuetifyImportOptions: Options = {}
+ const ignoreDirectives = ctx.moduleOptions.ignoreDirectives
+ if (ignoreDirectives) {
+ const ignore = Array.isArray(ignoreDirectives)
+ ? ignoreDirectives
+ : [ignoreDirectives]
+ vuetifyImportOptions.autoImport = { ignore }
+ }
+
+ viteInlineConfig.plugins.push(vuetifyImportPlugin(vuetifyImportOptions))
viteInlineConfig.plugins.push(vuetifyStylesPlugin({ styles: ctx.moduleOptions.styles }, ctx.logger))
viteInlineConfig.plugins.push(vuetifyConfigurationPlugin(ctx))
viteInlineConfig.plugins.push(vuetifyIconsPlugin(ctx))
diff --git a/src/vite/vuetify-import-plugin.ts b/src/vite/vuetify-import-plugin.ts
index 399a4f0..cc6cc5d 100644
--- a/src/vite/vuetify-import-plugin.ts
+++ b/src/vite/vuetify-import-plugin.ts
@@ -1,7 +1,8 @@
import { extname } from 'node:path'
import { pathToFileURL } from 'node:url'
import type { Plugin } from 'vite'
-import { type Options, generateImports } from '@vuetify/loader-shared'
+import type { Options } from '@vuetify/loader-shared'
+import { generateImports } from '@vuetify/loader-shared'
import { parseQuery, parseURL } from 'ufo'
import { isAbsolute } from 'pathe'
import destr from 'destr'