feat(pwa): SW 预缓存自动生成 + Sveltia 瞬间管理(池 4/5)
- gen-sw-precache.mjs post-build:按 dist 产物推导路由重写 dist/sw.js 预缓存段(AUTO 标记锚定;规则=顶层+/en/ 轨深度≤1、/admin 永不入 列)——新增顶层页自动进离线包,根治手工清单漏页维护债;实测 19 路由含 moments 双轨、admin 排除 - build.sh 守卫挂钩(守卫先行纪律);sw.js 源内兜底清单保留 - Sveltia 加 moments 集合:随手发瞬间(text/image 可选+hint 自查条 件必填、pubDate 日期件、tags、slug 日期模板)——管理后台从只管 照片扩到内容面第一步 验证: 产物 sw 19 路由断言全过;E2E 33/33 PASS;yaml 解析过;bash -n 过 Spec: none (离线包自动化+后台扩容,车道级交付) Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
3a59edc79a
commit
3941a34f04
4 files changed
+60
No files matched your search
@@ -16,6 +16,22 @@ output:
|
||||
omit_empty_optional_fields: true
|
||||
|
||||
collections:
|
||||
# 瞬间:随手发(text/image 至少其一——Sveltia 无法表达条件必填,两者都设可选,
|
||||
# 保存前自查;pubDate 必填)。图片走图库媒体库(content/photos 同源可复用)
|
||||
- name: moments
|
||||
label: 瞬间
|
||||
folder: content/moments
|
||||
create: true
|
||||
slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
|
||||
summary: '{{fields.pubDate}} · {{fields.text}}'
|
||||
fields:
|
||||
- { label: 时间, name: pubDate, widget: datetime, date_format: 'YYYY-MM-DD', time_format: false, format: 'YYYY-MM-DD' }
|
||||
- { label: 文字, name: text, widget: text, required: false, hint: '一句话(与图片至少填一项)' }
|
||||
- { label: 图片, name: image, widget: image, required: false, hint: '与文字至少填一项;建议先压缩' }
|
||||
- label: 标签
|
||||
name: tags
|
||||
widget: list
|
||||
required: false
|
||||
- name: photos
|
||||
label: 图库照片
|
||||
folder: content/photos
|
||||
|
||||
@@ -10,12 +10,15 @@
|
||||
const VERSION = 'w4x-v2';
|
||||
// install 预缓存核心路由(SSG 全量 ~30 页 HTML,<1MB,换来全站离线可读;
|
||||
// 列表由构建产物路由手工维护,新增顶层页时补一行)
|
||||
// PRECACHE:AUTO-BEGIN 以下为兜底清单——构建期由 scripts/build-perf/gen-sw-precache.mjs
|
||||
// 按产物自动重写(规则:顶层+en 轨路由,深度≤1 段;/admin 永不预缓存)
|
||||
const PRECACHE = [
|
||||
'/', '/archives/', '/gallery/', '/moments/', '/books/', '/opensource/',
|
||||
'/about/', '/terminal/',
|
||||
'/en/', '/en/archives/', '/en/gallery/', '/en/moments/', '/en/books/',
|
||||
'/en/opensource/', '/en/about/', '/en/terminal/',
|
||||
];
|
||||
// PRECACHE:AUTO-END
|
||||
const IMMUTABLE = [
|
||||
/\/_astro\//, // 构建产物(文件名带哈希)
|
||||
/\/fonts?\//, // 字体切片(fontsource,内容不变)
|
||||
|
||||
Reference in new issue
Block a user