SvelteKit adapter-static如何支持增量构建仅生成指定页面而非整站
SvelteKit 单路由/指定页面增量构建方案
目前完全可以实现仅构建指定页面的需求,以下是生产环境可用的成熟方案:
核心实现逻辑
SvelteKit 的预渲染配置支持动态指定需要构建的路由列表,无需每次全量生成所有页面:
- 在
svelte.config.js中读取环境变量传入的路由列表,赋值给prerender.entries配置项 - 内容变更时,先计算出关联的页面路由,作为参数传入构建命令即可
- 构建完成后仅覆盖更新对应页面的静态HTML文件,保留其余历史构建产物
配置示例
1. 调整svelte.config.js配置
import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter(), prerender: { // 未指定路由时默认全量构建,指定时仅构建传入的路由 entries: process.env.BUILD_ROUTES ? process.env.BUILD_ROUTES.split(',') : ['*'] } } }; export default config;
2. 执行增量构建
内容更新时,传入需要构建的路由即可,示例命令:
# 仅构建 /post/23、/news/102 两个页面 BUILD_ROUTES=/post/23,/news/102 npm run build
部署注意事项
- 不要清空之前的构建输出目录,仅将本次新生成的HTML文件上传到服务器/CDN/托管平台
- 动态路由(如
[slug].svelte)直接传入最终生成的实际路径即可正常渲染 - 可搭配CDN的单路径刷新功能,仅清空更新页面的缓存,进一步缩短上线时间
内容的提问来源于stack exchange,提问作者obcomv
相关产品推荐
相关产品推荐

