Serverless API 部署成功、全站统一 0.5px 视觉风格、零 lint 零 type errors。从"能跑起来"到"真正能用"的里程碑。
LessJS v0.4.0 只有一个核心主题:Serverless 集成跑通了。
从 v0.3.2 开始,LessJS 的架构文档里就写着 "API Routes 可以部署为 Serverless",但直到这个版本,它才真正 CI 自动化、真正跑在生产环境上。
v0.3.2 → v0.4.0:90 commits · 103 files · +3904 / −1810
Serverless API 的落地之路
| 阶段 | 问题 | 解决方案 |
|---|---|---|
| 部署平台迁移 | deployctl(旧平台 Classic)废弃 |
迁移到 deno deploy(新平台 v2) |
| CORS | hono/cors 中间件在 Deno Deploy 上不兼容 |
手动设置 Access-Control-Allow-Origin |
| 入口路径 | deployctl 和 deno deploy 的入口解析不一致 | 用 --entrypoint=serverless.ts 明确指定 |
| Import Map | Deno Deploy 读不到 workspace 配置 | 从 clean temp dir 部署,自带 deno.json |
| CI 触发 | 只 push main + demo/** 变更 | deploy-api.yml 自动化 + workflow_dispatch |
最终成果:less-demo-api.sisyphuszheng.deno.net 生产在线,CI 自动部署。这是 LessJS Jamstack 承诺的 "J"(Markup)+ "A"(API)+ "M"(Markup)全链路闭环。
代码质量
| 指标 | v0.3.2 | v0.4.0 |
|---|---|---|
| Lint 错误 | 有残留 | 0 |
| TypeScript 类型 | 有残留 | 0 errors |
| UI 测试通过 | 部分 | 84/84 |
| 全站 1px 残留 | 40+ 处 | 0 |
| 硬编码色(非 Hero) | 大量 | 0(全部 CSS 变量) |
关于"零 JS"的实话
LessJS 不是零 JS,而是零框架 JS。 每个页面有约 400 字节的内联基础设施脚本(主题初始化 + Service Worker 注册)。这是不可消除的——它们是 L2 层(平台 API),在 I 约束(Isolated)的豁免范围内。但 Lit / Hono / 框架核心代码的确是 0 字节。零交互页面只加载这 ~400 字节。对比之下 Fresh 每页 ~1KB,Nuxt ~60KB,Next.js ~70KB。有交互的页面按需加载 Island chunk,每个 ~2-6 KB gzip,懒加载 + 独立 Shadow DOM。