@@ -19,6 +19,7 @@ import type {
19
19
} from 'firebase-admin/app'
20
20
import { markRaw } from 'vue'
21
21
import type { NuxtVueFireAppCheckOptions } from './runtime/app-check'
22
+ import { addMissingAlias } from './firebaseAliases'
22
23
23
24
export interface VueFireNuxtModuleOptions {
24
25
/**
@@ -206,38 +207,27 @@ const VueFire: NuxtModule<VueFireNuxtModuleOptions> =
206
207
hooks : {
207
208
// Resolve the correct firebase/firestore path on server only since vite is resolving the wrong one in dev
208
209
'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
+ >
238
216
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
+ )
240
226
}
227
+
228
+ promises . push ( addMissingAlias ( aliases , 'firebase/app' , 'index.mjs' ) )
229
+
230
+ await Promise . all ( promises )
241
231
} ,
242
232
} ,
243
233
} )
0 commit comments