@@ -19,6 +19,7 @@ import type {
1919} from 'firebase-admin/app'
2020import { markRaw } from 'vue'
2121import type { NuxtVueFireAppCheckOptions } from './runtime/app-check'
22+ import { addMissingAlias } from './firebaseAliases'
2223
2324export interface VueFireNuxtModuleOptions {
2425 /**
@@ -206,38 +207,27 @@ const VueFire: NuxtModule<VueFireNuxtModuleOptions> =
206207 hooks : {
207208 // Resolve the correct firebase/firestore path on server only since vite is resolving the wrong one in dev
208209 'vite:extendConfig' : async ( config , { isServer } ) => {
209- if ( isServer ) {
210- config . resolve ??= { }
211- config . resolve . alias ??= { }
212-
213- // skip the whole thing if the alias is already set in user config
214- // @ts -ignore
215- if ( ! config . resolve . alias [ 'firebase/firestore' ] ) {
216- // this gives an absolute path which is needed for the alias to work since the firebase package is not including the dist folder in exports
217- const resolvedFirestore = await resolvePath ( 'firebase/firestore' )
218- const resolvedFirestoreMJS =
219- resolvedFirestore . slice (
220- 0 ,
221- resolvedFirestore . lastIndexOf ( 'dist' )
222- ) + 'dist/index.mjs'
223- // @ts -ignore
224- config . resolve . alias [ 'firebase/firestore' ] = resolvedFirestoreMJS
225-
226- const resolvedNamespacedFirestore = await resolvePath (
227- '@firebase/firestore'
228- )
229- const resolvedNamespacedFirestoreMJS =
230- resolvedNamespacedFirestore . slice (
231- 0 ,
232- resolvedNamespacedFirestore . lastIndexOf ( 'dist' )
233- ) + 'dist/index.node.mjs'
234- // @ts -ignore
235- config . resolve . alias [ '@firebase/firestore' ] =
236- resolvedNamespacedFirestoreMJS
237- }
210+ config . resolve ??= { }
211+ config . resolve . alias ??= { }
212+ const aliases : Record < string , string > = config . resolve . alias as Record <
213+ string ,
214+ string
215+ >
238216
239- // add any other firebase alias you need
217+ const promises : Promise < void > [ ] = [ ]
218+
219+ if ( isServer ) {
220+ promises . push (
221+ addMissingAlias ( aliases , 'firebase/firestore' , 'index.mjs' )
222+ )
223+ promises . push (
224+ addMissingAlias ( aliases , '@firebase/firestore' , 'index.node.mjs' )
225+ )
240226 }
227+
228+ promises . push ( addMissingAlias ( aliases , 'firebase/app' , 'index.mjs' ) )
229+
230+ await Promise . all ( promises )
241231 } ,
242232 } ,
243233 } )
0 commit comments