使用SvelteKit部署Firebase Hosting失败,如何修改firebase.json?
解决SvelteKit部署Firebase Hosting的配置问题
第一步:配置SvelteKit静态适配器
首先需要安装适配Firebase Hosting的SvelteKit静态适配器:
npm install @sveltejs/adapter-static --save-dev
新建或修改src/routes/+layout.server.js,添加预渲染配置:
export const prerender = true;
修改svelte.config.js,替换原有适配器为静态适配器,指定构建输出目录:
import adapter from '@sveltejs/adapter-static'; import { vitePreprocess } from '@sveltejs/kit/vite'; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter({ pages: 'build', assets: 'build', fallback: 'index.html' // 适配SPA路由跳转 }) } }; export default config;
执行构建命令生成可部署的静态包:
npm run build
构建完成后会生成build文件夹,这才是Firebase Hosting需要的标准静态资源目录。
第二步:修改firebase.json配置
将public字段指向生成的build目录,同时添加路由重写规则,确保所有路径都能正确映射到SPA入口:
{ "hosting": { "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }
为什么之前的配置无效?
.svelte-kit是SvelteKit构建过程中的临时工作目录,并非最终可部署的静态产物,里面没有Firebase Hosting要求的index.html和适配路由的相关文件。必须通过官方适配器生成标准静态包后,再配置Firebase指向对应目录。
内容的提问来源于stack exchange,提问作者Curvegraph
相关产品推荐
相关产品推荐

