HeartCart 本体
这里是 HeartCart 真正的产品代码(不是小样)。从第 54 版桌面一块一块搬进来,手感保持一样;搬完的部分按分层放好,以后加功能都加在对应的那一层上。
分层(从上到下,上层可以用下层,反过来不行)
| 层 | 放什么 | 现在有 |
|---|---|---|
| app(启动) | 把各部分接起来;架构查看器 | 启动、架构查看器 |
| pages(页面) | 一整页:桌面、工作台 | 桌面、工作台(都还是旧代码,整块搬进来) |
| widgets(区块) | 页面上的大块:侧边栏、工具条、组合 | 还没搬 |
| features(动作) | 用户能做的一件事:拖、放进组合、改大小 | 还没搬 |
| entities(东西) | 桌上的东西:便签、图片、板子、组合 | 还没搬 |
| shared(地基) | 谁都能用的底层:撤销 / 重做、架构登记表 | 撤销 / 重做、登记表 |
- 同一层的两块不能互相用;要共用就挪到更下层。
- 每次生成网站都会先跑「依赖方向检查」(scripts/check-layers.mjs)和类型检查,不通过网站不更新。
旧代码怎么慢慢搬
第 54 版的桌面整块放在 src/pages/desk/legacy/,工作台流程放在 src/pages/bench/legacy/。页面里用 <!-- legacy:… --> 标记,生成时原样嵌进去。每搬一块:新代码接管 → 和旧版用同一串动作比对结果一样 → 把旧代码里那一段删掉。
已经接管的:
- 撤销 / 重做(shared/editor-core):每次按下到东西落定记成一步,每个项目页各一份,可以重做。
架构查看器
按 I 或点右下角「架构」:桌面暂停,点任何东西看它属于哪一层哪一块、用到哪些数据和规则、代码搬到哪了、挂着你哪些原话,还能复制一段指令模板。「撤销历史」一栏能看到这一页每一步。
登记表在 src/shared/registry/:blocks.ts(每一块的名字、状态、命令、数据、规则),requests.ts(你的原话和它该落在哪块)。
自己跑起来(给 Claude 看)
`
cd app
npm ci
npm run dev # 本地预览
npm run build # 检查 + 生成到 app/dist
`
工作室网站生成时(tools/build_site.py)会自动跑 npm ci 和 npm run build,结果放在网站的 app/ 下。