前端配置
本页是决策指南,不重复罗列每一个类型成员。先使用默认值,只为产品确实要改变的行为配置字段;需要精确字段、默认值或嵌套选项时,以VextFrontendConfig API 参考为准。
目录导航
决定要配置什么
不要因为字段存在就添加它。默认值刻意保持 runtime 简洁:React + esbuild、SSR 开启、buffered streaming、浏览器代码拆分开启、生产浏览器压缩开启,且没有 CDN/upload adapter。
最小配置
完全关闭前端:
frontend: true 使用 src/frontend、pages、components、styles/index.css 与 public 约定。生产 build 会生成 dist/client;浏览器压缩默认开启,浏览器 source map 默认关闭。SSR renderer 是独立 Node bundle,默认不压缩,便于诊断。
完整示例
生产交付配置形态
同源(默认)
首次生产部署不需要配置 CDN:
vext build 会写出 dist/client 前端 closure;vext start 会校验 closure 并由同一个 Node 服务同时提供 assets 和 SSR。当单独静态 origin 没有实际收益时,应保留这条基线。
CDN 与增量上传
只添加 CDN 路径真正需要的交付字段:
filesystem 只生成 staging deploy tree。真实云厂商要使用 custom adapter;不会隐式安装 cloud SDK 或 bundler-plugin ecosystem。把 state file 放在 frontend.outDir 外,先执行 vext deploy assets --dry-run,再部署匹配的 Node dist/ 输出。
核心字段
Style 字段
Build 字段
React 相关 browser external 必须提供 externalRuntime 映射,否则构建会用友好诊断失败。
浏览器输出采用目录模式,通过 frontend.outDir 配置;不支持 frontend.build.client.outFile。Vext 始终生成 SSR、preload、deploy 和验证所需的 frontend manifest family,因此 build.client.manifest / build.server.manifest 不是配置字段。
普通产品应保持浏览器代码拆分、hash 命名和 Vext-managed vendor entry 开启。先以 warning 形式配置预算,检查 size-report.json 中的完整 route closure,再把预算转成 release 阻断门禁。
Deploy 字段
assetBaseUrl 必须是绝对 URL。deploy-manifest.json 会上传 JS、CSS、import 型媒体和复制的 public 文件;默认不上传 SSR HTML 和 source map。每次更换 adapter、prefix 或 include/exclude 规则前,都要先执行 vext deploy assets --dry-run。
SEO 字段
frontend.seo 是框架级 SEO 入口。不配置时关闭;配置该对象后,enabled 默认是 true。
publicOrigin 标识部署 origin,Vext 会把它与每个请求 pathname 组合,因此动态页面不会共用一个固定 URL。静态元数据放在路由级 frontend.seo;依赖页面数据的元数据放在 res.render(..., { seo })。sitemap 与 robots 均可选择 "build" 或 "runtime" 模式,有限多域名部署使用命名 origins。
动态 canonical、provider、Host 选择、产物与无 hydration 示例见 SEO、Sitemap 与 Robots,完整嵌套字段见 API 参考。
I18n 字段
Dev 字段
frontend.dev.overlay 只控制前端浏览器开发 UI。后端异常 HTML overlay 由顶层 dev.errorOverlay 单独配置。
SPA Fallback 字段
应声明单独 scope,而不是全站 catch-all。API、OpenAPI 和文档路由默认被排除,避免 client-router shell 遮住运维 endpoint。
验证配置变更
修改 build 或 budget 后,检查 dist/client/size-report.json。修改 CDN 后,请求一个 SSR 页面和一个 hash browser asset,确认它们属于同一次发布。修改 SPA fallback 后,还应请求一个被刻意排除的 API 路径。较少使用的嵌套字段以API 参考为准。