Closed
Description
[REQUIRED] Describe your environment
- Operating System version: macOS 11.5.2
- Browser version: n/a
- Firebase SDK version: 9.0.1 (and newer)
- Firebase Product: firestore
[REQUIRED] Describe the problem
I am using Firebase (auth
and firestore
) in a Sveltekit project. It has been building and running successfully until I recently tried to upgrade. I was able to isolate the error to 9.0.1
(more specifically: firestore 3.0.1
).
I created a minimal app to identify what dependencies/versions are required in order to reproduce the issue. This occurs when building any recent version of Sveltekit with the node
adapter. Using an older version of Sveltekit or the node
adapter does not resolve the problem. Only by reverting to Firebase 9.0.0
(firestore 3.0.0
) was it resolved, which is why I believe the issue is with Firebase / Firestore.
Steps to reproduce:
- Create a skeleton Sveltekit app:
$ npm init svelte@next sveltekit-firebase > Skeleton project > No Typescript > No ESLint > No Prettier
- Install additional dependencies (
firebase
and@sveltejs/adapter-node
)$ cd sveltekit-firebase $ npm i -P firebase@9.0.1 $ npm i -D @sveltejs/adapter-node@next
- Edit
svelte.config.js
andsrc/routes/index.svelte
to import/use the two dependencies (see below) - Build the project
$ npm run build
- Note the build errors (see example error output below)
- Revert
firebase
to9.0.0
and build again$ npm i -P firebase@9.0.0 $ npm run build
- Note the build succeeds
Relevant Code:
./svelte.config.js
/** @type {import('@sveltejs/kit').Config} */importnodeAdapterfrom"@sveltejs/adapter-node";constconfig={kit: {adapter: nodeAdapter(),// hydrate the <div id="svelte"> element in src/app.htmltarget: "#svelte",},};exportdefaultconfig;
./src/routes/index.svelte
<script>import{getFirestore}from"firebase/firestore";</script><h1>Welcome to SvelteKit</h1><p>Visit <ahref="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
Resulting Error Output
> .svelte-kit/output/server/app.js:11276:14: warning: Using direct eval with a bundler is not recommended and may cause problems (more info: https://esbuild.github.io/link/direct-eval) 11276 │ var mod = eval("quire".replace(/^/, "re"))(moduleName); ╵ ~~~~ > Cannot read property 'prototype' of undefined TypeError: Cannot read property 'prototype' of undefined at file:///Users/ken/Code/sandbox/sveltekit-firebase/.svelte-kit/output/server/app.js:12359:56 at ModuleJob.run (node:internal/modules/esm/module_job:183:25) at async Loader.import (node:internal/modules/esm/loader:178:24) at async prerender (file:///Users/ken/Code/sandbox/sveltekit-firebase/node_modules/@sveltejs/kit/dist/chunks/index5.js:121:14) at async Object.prerender (file:///Users/ken/Code/sandbox/sveltekit-firebase/node_modules/@sveltejs/kit/dist/chunks/index5.js:352:4) at async adapt (file:///Users/ken/Code/sandbox/sveltekit-firebase/node_modules/@sveltejs/adapter-node/index.js:105:4) at async adapt (file:///Users/ken/Code/sandbox/sveltekit-firebase/node_modules/@sveltejs/kit/dist/chunks/index5.js:377:2) at async file:///Users/ken/Code/sandbox/sveltekit-firebase/node_modules/@sveltejs/kit/dist/cli.js:877:5