LessJS 的所有重要变更都记录在这里。
格式基于 Keep a Changelog,本项目遵循 语义化版本 2.0.0。 历史条目保留当时术语;当前文档统一把 LessJS 的客户端模型称为 Island Upgrade,而不是传统 hydration。
packages/kiss-adapter-lit/src/ssr.ts
docs/app/islands/api-consumer.ts
packageIslands configuration option to specify which packages to scan
scanPackageIslands() function to dynamically import packages and read
islands export
less-theme-toggle Island for theme switching (Dark/Light)
PackageIslandMeta
less-layout 主题切换逻辑已移除 — 请使用
less-theme-toggle Island
less-layout simplified to static component (no client-side state)
LessJS_LOG_LEVEL 环境变量| 问题 | 根源 | 影响 | 缓解方案 |
|---|---|---|---|
| Deno fmt dprint-core panic | dprint-core 0.67.4 在处理嵌套 Lit 模板字面量(含 HTML 实体 < 等)时 panic | docs/ 中 Lit tagged template 无法格式化 | CI 中 fmt --check 跳过 docs/,仅检查 packages/ |
| node-domexception CJS 兼容 | node-domexception@1.0.0 使用 module.exports (CJS),Deno 的 ESM 运行时无法直接加载 | SSG 构建失败:ReferenceError: module is not defined | globalThis.module / exports polyfill,用完后 finally 清理 |
| parse5 / entities 版本锁 | entities@6 与 parse5@7 的兼容性要求,需同步升级 | 依赖安装失败 | 升级 entities 到 ^6 |
| 旧 Lit SSR client 时序 | 当时的 Lit SSR client 补丁必须在 customElements.define() 之前执行,否则已注册的元素会全量渲染再 patch(双重渲染) | Island 组件双重渲染 / DSD 接管不匹配 | 动态 import() 确保旧客户端补丁先于任何组件注册执行 |
| @lessjs/core → lit resolve alias | Vite lib mode 构建中将 @lessjs/core 映射为 lit,使编译产物直接依赖 lit 而非 @lessjs/core | @lessjs/ui 的 dist 消费者无需安装 @lessjs/core | resolve.alias + build.ts serializeAlias 传递到 CLI 构建 |
| Window CRLF vs Unix LF | Windows Git 自动转换行尾导致 deno fmt CI 失败 | 多平台协作者间格式冲突 | .gitattributes eol=lf 统一行尾 |
| tsup → Vite lib mode | tsup 不支持 Deno 的 node: 前缀保留 | Node 原生模块导入失败 | 迁移至 Vite lib format: 'es',天然保留 node: 前缀 |
| 版本 | 日期 | 亮点 |
|---|---|---|
| 0.3.4 | 2026-04-30 | Code audit fixes + upstream compat docs + version bump + release |
| 0.3.0 | 2026-04-29 | Package Islands auto-detection + less-theme-toggle Island + build pipeline refactor |
| 0.2.0 | 2026-04-27 | Package Islands auto-detection + less-theme-toggle Island |
| 0.1.7 | 2026-04-27 | Architecture audit + dogfooding + docs self-hosting |
| 0.1.6 | 2026-04-26 | Design system + mobile responsive |
| 0.1.5 | 2026-04-20 | LessJS Architecture branding |
| 0.1.4 | 2026-04-15 | inject option + API Routes docs |
| 0.1.3 | 2026-04-10 | @lessjs/rpc + @lessjs/ui |
| 0.1.2 | 2026-04-05 | Island AST transform |
| 0.1.1 | 2026-04-01 | Initial JSR release |