@@ -52,6 +52,9 @@ export default defineNuxtModule<VeeValidateNuxtOptions>({
5252 componentNames : { } ,
5353 } ,
5454 setup ( options , nuxt ) {
55+ addMjsAlias ( 'vee-validate' , 'vee-validate' , nuxt ) ;
56+ prepareVeeValidate ( nuxt ) ;
57+
5558 if ( options . autoImports ) {
5659 composables . forEach ( composable => {
5760 addImports ( {
@@ -94,8 +97,6 @@ export default defineNuxtModule<VeeValidateNuxtOptions>({
9497 checkForValibot ( options , nuxt ) ;
9598 }
9699 }
97-
98- addMjsAlias ( 'vee-validate' , 'vee-validate' , nuxt ) ;
99100 } ,
100101} ) as NuxtModule < VeeValidateNuxtOptions > ;
101102
@@ -192,3 +193,15 @@ declare module '@nuxt/schema' {
192193 'vee-validate' ?: VeeValidateNuxtOptions ;
193194 }
194195}
196+
197+ /**
198+ * Excludes vee-validate and vee-validate/rules from the optimization process.
199+ * The optimization process causes issues with the symbols export not matching between the module components and the main vee-validate package.
200+ * Maybe it is because vite chunks them in different files/sources.
201+ * Only happens with SSR tho, SPA works.
202+ */
203+ function prepareVeeValidate ( nuxt : Nuxt ) {
204+ nuxt . options . vite . optimizeDeps = nuxt . options . vite . optimizeDeps || { } ;
205+ nuxt . options . vite . optimizeDeps . exclude = nuxt . options . vite . optimizeDeps . exclude || [ ] ;
206+ nuxt . options . vite . optimizeDeps . exclude . push ( 'vee-validate' , '@vee-validate/rules' ) ;
207+ }
0 commit comments