Rust in Everything
基于 topcoat-asset 0.10.0

资产与工具链

模块路由在链接期用 inventory 收集;资产走的是另一条「发现」路线:在编译好的二进制里留一段字节标记,构建之后由 topcoat 命令行扫出来。两章:

  1. asset! 与 bundler:asset! 在 const 里算 id、放一块 2048 字节的记录,前缀为什么 XOR;实测二进制里的记录(没用到的资产不在,记录里带着构建机的绝对路径);bundler 的解析、下载缓存、SHA-256 命名与清理;no asset bundle at、校验失败、下载失败、清单缺条目四种报错原文;和 manganis 的对比。
  2. tailwind、font、icon 与 topcoat CLI:tailwind 在 build.rs 里下载独立 CLI、iconify 在 build.rs 里下载图标集、Fontsource 是 jsDelivr 上 @latest 的远程资产(三者需要联网,未实测);topcoat dev 的循环与 0.10.0 里「只改资产文件不重启、旧 URL 变 404」的实测;topcoat fmt;topcoat ui 拷组件、记 registry 哈希,remove 会删掉改过的文件。
flowchart TB
  asset["asset!:二进制里的记录"] --> bundler["bundler:扫描、下载、哈希"]
  bundler --> dir["assets/:文件 + manifest.toml"]
  dir --> serve["AssetBundle:/_topcoat/assets/,immutable"]
  tw["tailwind:build.rs 生成 CSS"] --> asset
  font["Fontsource:远程 woff2"] --> asset
  cli["topcoat dev:构建、打包、重启"] --> bundler

💬 关联讨论

发起讨论
加载中...