Open navigation

Blog/release

LessJS v0.4.0 — Serverless Integration Milestone

Serverless API 部署成功、全站统一 0.5px 视觉风格、零 lint 零 type errors。从"能跑起来"到"真正能用"的里程碑。

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。