Astro v5 x DevNow
先介绍下 DevNow
- DevNow Github
- 体会网站
DevNow 是一个精简的开源技能博客项目模版,支撑 Vercel 一键布置,支撑谈论、查找等功能,欢迎我们体会。一起也支撑 Follow、 RSS 订阅,欢迎我们订阅。
现在承载着:
- 我的Blog:一些相关的技能文章和个人日子记载。
- Weekly: 每周发布一些技能圈中热度比较高的内容,首要是技能相关的。
- Ph-Daily: 热榜可能会交叉一些其他的论题和一些开源项目介绍等。
- DevNow:开源项目的一些迭代信息和介绍。
布景
很早之前就看到 Astro 5.0 beta
版别,可是没有跟进,想着等安稳版别发布在更新。跟着 Astro 5.0 在 12月4号 正式发布,今日正好不忙就把 DevNow 项目更新到了 Astro v5.0
,不过这个版别的更新不是很大,可是有许多许多的新特性,包含 Content Layer、Server Islands、Prerendering、Vite 6 等等,这些都是很值得我们重视的。详细的更新能够看以下文章:
- Astro 5.0 发布
- DevNow 更新内容
下边首要记载下晋级过程中遇到的问题,以及处理的方法。
晋级内容
Content Layer
首要是经过新的 Content Layer loader
来完成加载本地资源文件,详细如下图:
文章结构
- 用 id 替换掉 slug
- render 引进替换
Issues
loader 加载本地文件
经过 loader glob
加载本地文件的时分,默许是经过 entry id
来生成文章的索引, id
和原先的 slug
的区别是 id 会带上文件名后缀,如:
// id: 2022-05-22.md
// slug: devnow
会导致原先的文章无法加载,查找引擎现已录入的都是 slug
这种路由,这样替换成 id
会导致路由的改变,这儿仍是希望生成 slug
这样的路由。
Astro
中供给了两种方法:
- legacy-flags : 经过
legacy-flags
来兼容原先的数据加载计划。 - 持续运用
Content Layer loader
,然后在loader
中进行处理: 经过自定义generateId
来完成自定义 id。处理计划是在社区找到的 feat: add glob loader
其他的规划一些小改动,详细的改动能够看 DevNow 的晋级 Commit 中的详细信息。
剩余的后边在持续跟进,还有些新的 Feature
也会在后续迭代上。