两档校验
lib/validate.js 在每次 dev / build 都会跑一遍,分两档:
- data 模式(恒开):schema、角色和结构互验、markers 引用完整性、 mdx 地址与目录地址的撞车检测;
- full 模式(设
ATLAS_FULL=0可临时关):登记表和页面文件互相对账。
它能拦住什么
举几个真实会报错的例子。同一目录下两个章节写了相同的 order,构建直接失败:
[atlas] ../content/posts/building-this-site/publishing/rss.mdx: order 2 与 ../content/posts/building-this-site/publishing/mdx.mdx 重复——同一目录内序号必须唯一
往目录里塞 index.mdx(目录索引只允许 index.astro 承载):
[atlas] (index.mdx): ../content/posts/index.mdx 不允许——目录索引一律用 index.astro(写系列引言请在落地页 astro 里写)
还有散篇推导出的地址撞上目录、section 分组建在系列树之外、markers 引用了
不存在的 id、散篇忘了写日期……全都一样:构建失败,错误信息带着文件路径,
当场改当场好。
为什么这么严
静态站怕的不是报错,是错得没声音。章节顺序排错了、链接指空了,页面上一点 动静都没有,等哪天自己翻到了才发现,那时候它已经在线上挂了不知多久。
构建期校验把这类事故拦在本地。报错烦人,但比悄悄坏掉强。