// CASE_FILE > GHOSTFRAMES

前端 · React 库2026

Ghostframes

手工维护的骨架占位会随组件变化而腐坏。我构建了从真实组件生成、由 CI 把关的零配置骨架。

1
公开软件包
3
CI 质量关卡
0
运行时配置
npmjs.com/package/@ghostframes/runtimeFEED//LIVE
$ pnpm add @ghostframes/runtime
[ok] blueprint captured
ghostframes validate .. pass
ghostframes diff ...... clean
config ............... 0
status: SKELETAL
$

// 01 > CONTEXT

Ghostframes 是一个 React 骨架占位库,以单一公开软件包 @ghostframes/runtime 的形式发布。它在构建时从真实组件捕获骨架清单,并在 CI 中强制保证其质量。

// 02 > THE_PROBLEM

骨架占位是手写的,会从它们所模仿的组件漂移开去,因此随着时间推移会衰退成错误的形状。

手动维护骨架既乏味又易出错,而且当骨架不再匹配其组件时没有任何机制能捕获,于是加载状态会悄无声息地劣化。

之前

手写骨架 · 从组件漂移 · 没有质量关卡

// 03 > APPROACH

我在构建时从真实组件生成骨架,并加入 CI 关卡,强制执行 schema、键覆盖率、无效条目预算和产物大小。

构建时捕获

AutoSkeleton 和 generateStaticBlueprint 从真实的组件树产出占位产物。

CI 质量关卡

ghostframes validate、diff 和 report 在每次变更时强制执行 schema、覆盖率和大小。

TypeScriptReact

// 04 > THE_RESULT

骨架从真实组件生成,并由 CI 关卡保持一致,因此加载状态始终准确,无需手工维护。

之前

  • 手写的骨架
  • 从真实组件漂移
  • 没有自动化检查

之后

  • 构建时生成
  • CI 中的 schema + 覆盖率关卡
  • 零运行时配置
骨架应当来自组件,而不是你手工维护的第二份副本。生成它,然后让 CI 保持它诚实。
AAmit RanaAuthor & Maintainer, Ghostframes

遇到了类似的问题?

预约 20 分钟通话