静态服务、H3 与 v0.1 的最后一块
Source: Dev.to
静态服务
Host 现在从 src/ 提供文件——仅仅是提供服务。没有回退逻辑,也没有集成检测。入口点是 src/index.html。
以后,这部分会移到回退区块——一旦集成真正实现,静态服务将成为在没有其他处理请求时的基线。目前,它是唯一在运行的功能。
我还添加了一个简单的 JSON 接口——"$path/__json"——用于返回关于应用本身的一个小 JSON 对象。它对调试很有帮助,未来可能会成为公开 API 的一部分。
静态服务现在已经成为基线。每个在 Velnora 工作区中的项目都会免费获得它,无需任何配置。
velnora init
H3 框架
H3 是我在 Velnora 的 Host 早期选择的 HTTP 框架,但这是我第一次真正深入使用它。它的体验与 Express 不同:
- 没有
req和res。你收到的是 事件对象。 - 不会调用
res.send()。你 返回 响应。 - 返回空值会触发下一个处理器。
中间件不是你可以推入的堆栈;它是一组事件处理器的组合。框架决定运行什么;你只需要定义处理器并进行组合。
起初,我的肌肉记忆会不自觉地去使用在 H3 中不存在的 Express 模式。文档很少——UnJS 生态系统期望你阅读源码——但一旦我停止把 H3 映射到 Express,转而用它自己的思路思考,事情就顺畅了。代码变得更简短,组合更清晰,静态服务也自然地与 Vite 中间件并列。
工作区初始化(v0.1)
在服务可用后,v0.1 的最后一块是提供一种从零开始启动工作区的方式。
我实现了以下命令:
velnora init
- 目前必须提供 “ 参数。
- 该命令会创建构成有效 Velnora 工作区的两个文件:配置文件和
package.json。 - 不会执行额外的脚手架工作;其余部分需要手动完成,直到将来加入问卷(包括针对特定集成的问题)。
这种极简的做法让 init 命令保持诚实且不干扰。
v0.1 总结
v0.1 已完成。虽然没有华丽的 UI、仪表盘或演示,但核心流水线已可运行:
- Kernel 启动。
- Host 提供静态文件。
- 项目发现工作正常。
velnora init搭建工作区。
我会把仓库标记为 v0.1,但暂不发布——没有紧迫感。代码和标签标记了这一里程碑。
下一步: 分析 v0.2 的范围,以决定先处理哪个任务。骨架已经搭好,现在需要填充肌肉。