LessJS 的路线图围绕一个判断展开:先把 SSG + DSD + Island Upgrade + Hono API 做可信,再扩展 serverless fullstack、ISR、PWA 和 compiler,最终在公共 API 稳定后承诺 1.0。
Roadmap 不是宣传页。这里列出的未来项只有进入实现和测试后,才会被写成稳定用户指南。 版本号策略详见 ADR 0006。
v0.7.0 完成了四维审计的全部 P0 修复:render-dsd.ts 和 island.ts 单元测试(73 个新测试)、runtime-shim 一致性修复、headExtras XSS 警告、 静默 catch 消除、CI 补全、pre-commit hooks。354 测试全部通过。 部署迁移至 Cloudflare Pages,lessjs.com 已上线。 当前聚焦 v0.8.0:P1 功能完善 + Island Manifest。
| Area | Status | Notes |
|---|---|---|
| TC39 Signals 二开 | ✅ Done | @lessjs/signal: signal()、 computed()、 effect()、 islandEffect()。 浏览器原生 Signal 条件回退。 |
| DSD 规范对齐 | ✅ Done | shadowrootdelegatesfocus、 shadowrootserializable、 shadowrootslotassignment、 shadowrootcustomelementregistry。 inferDsdOptions() 自动推断。 |
| Form-Associated CE | ✅ Done | less-button、 less-input 使用 ElementInternals,支持 :state() 伪类。 |
| Navigation API | ✅ Done | navigate()、 onNavigate()、 matchRoute()。 URLPattern + regex fallback。 |
| Speculative Loading | ✅ Done | <link rel="modulepreload"> for eager; <link rel="prefetch"> for lazy。 |
| dialog/popover + inert | ✅ Done | 原生 <dialog> + ::backdrop + inert 无障碍。 |
| Island 系统改进 | ✅ Done | Mixin 替代猴子补丁,适配器显式注入, idle 降级改进。 |
| Quick Wins | ✅ Done | prefers-color-scheme、escapeHtml 统一、 语义化 HTML、CSS 去重。 |
修复根 middleware scope、island chunk 双前缀、strategy 传递、嵌套 island 路径、SSG CSP 注入和 DEFAULT_NAV 同步。 文档承诺与构建产物对齐,309 测试通过,构建全流程验证。
Declarative Shadow DOM SSR、Safe/Unsafe HTML 品牌类型、L2 嵌套 DSD 递归渲染、 CSS Custom Properties 主题系统(替代 _propagateTheme DOM 遍历)、Island 懒加载策略、 TC39 signal-polyfill 二开(signal/computed/effect/islandEffect)、 DSD 规范对齐(delegatesFocus/serializable/slotAssignment/scopedRegistry)、 Form-Associated CE + ElementInternals + :state()、Navigation API + URLPattern、 Speculative Loading、dialog/popover + inert、Island Mixin。 322 测试通过,deno lint 零警告。
alpha 反馈收集、回归测试增强、文档补全。v0.6.0 正式版发布前需要验证所有新增 Web Standards 功能在真实应用中的表现。
基于四维审计(2026-05-07)的 P0 紧急修复。消除不可信行为,建立工程纪律。 包含破坏性变更(XSS 修复、catch 行为变更),因此升 MINOR。
| 任务 | 说明 |
|---|---|
| render-dsd.ts 单元测试 | 770 行核心渲染器零覆盖 |
| island.ts 单元测试 | 321 行 Island 系统零覆盖 |
| runtime-shim 一致性修复 | serializeAttributes 缺失 escapeAttrValue |
| headExtras/headFragments XSS | 重命名 + 运行时警告 |
| 消除静默 catch | 8+ 处错误吞没 → console.warn |
| CI 补全 | adapter-lit/docs 测试任务、发布门禁 |
| pre-commit hooks | 格式化/lint/类型检查守卫 |
P1 审计修复 + Island 系统演进。补全测试覆盖、统一组件模型、 引入页面级 island manifest 替代全局入口。 Core API 稳定后启动 @lessjs/blog 开发(SSG 插件形态,不依赖 Fullstack)。
| 任务 | 说明 |
|---|---|
| signals 测试套件 | 749 行零覆盖 |
| dsd-hydration.ts 单元测试 | Mixin 核心逻辑验证 |
| Signal 原生切换 | npm 依赖 + globalThis.Signal 回退 |
| render-dsd.ts 拆分 | 770 行拆为 4 模块 |
| UI 统一到 DsdLitElement | 3 个组件未使用 Mixin |
| insertAfterHead 去重 | ui → core |
| 包版本统一 | 6 包版本不一致 |
| 定位重写 | 避免"全栈"过度承诺 |
| Interactive Playground | StackBlitz 一键体验 |
| Playwright E2E 测试 | 浏览器级集成测试 |
| Island Upgrade Manifest | 页面级 island 清单 |
| Speculative Loading 可观测 | 策略浏览器测试 |
| @lessjs/blog 开发启动 | SSG 插件形态,v0.8 后核心 API 稳定即可开始 |
Promote Hono API routes into a complete app story: FormData actions, typed RPC, env/secrets, deployment adapters and small official examples for content-driven apps. @lessjs/blog dogfooding on docs site during this phase.
Add route-level revalidation, cache locks, stale fallback, service worker strategy and CDN recipes. ISR should arrive only after adapter semantics are clear.
P2 审计修复 + .less Compiler Alpha 引入。AST 替代手工 runtime-shim(根治最大技术债)、 增量 SSG 构建、性能基准、覆盖率门禁、视觉回归测试、安全审计自动化。 Compiler 需要稳定的 DSD renderer 作为编译目标,因此排在 AST 替换之后。
当以下条件全部满足时,可以打 1.0.0:
1.0.0 不要求 Compiler 生产可用或 ISR 生产可用——这些是 1.x 的增量工作。
1.0 后公共 API 视为稳定,Breaking Change 必须升 MAJOR。 增量工作包括:Compiler Beta → Stable、@lessjs/blog 包、Fullstack 示例丰富、 更多 adapter(Vue/React island bridge)等。
只有当 .less Compiler 生产可用、社区已自然迁移、将 Compiler 设为默认会破坏现有 Lit 用户工作流时,才需要 2.0。如果 Lit 兼容模式可以无缝共存,则不需要 2.0。
| 版本段 | 含义 | Breaking Change |
|---|---|---|
| v0.7–0.10 | 框架在定义自己 | MINOR 升级允许 |
| v0.11 | 过渡版本:基础设施成熟 + 新能力引入 | 尽量减少 |
| v1.0 | 公共 API 冻结 | 绝不允许 |
| v1.x | 增量扩展 | 公共 API 不破坏 |
| v2.0 | 范式转换(如果需要) | 允许,需迁移指南 |
Near-term examples should focus on docs, blogs, content sites, product pages and light serverless apps. CRM/admin style applications are valid medium-term targets, but they need stronger forms, auth, validation, data loading and revalidation contracts before becoming official showcase material.