Files
tools-show/design/context/project-context.md
2026-04-11 20:46:55 +08:00

3.7 KiB

项目上下文

基本信息

字段 内容
项目名称 Tools Show
技术栈 Vue 3、vue-router、Vite、Vitest、NestJS、Prisma、Jest、SQLite
创建日期 2026-04-11
最后更新 2026-04-11
项目阶段 开发中

已完成功能

功能 描述 完成日期 状态
访客端工具列表与筛选 首页支持搜索、分类、排序、分页和站点概览弹窗 2026-04-11 稳定
工具用户手册详情页 新增基于 slug 的访客端详情页,支持 Markdown 手册、空状态、404、返回入口和长文目录导航 2026-04-11 稳定
公开详情 slug 接口 服务端新增按 slug 查询已发布工具详情的公开接口,并保留原有按 id 查询能力 2026-04-11 稳定
前端测试基建 客户端补充 Vitest + Vue Test Utils + jsdom,覆盖首页跳转、详情页和 Markdown 目录工具 2026-04-11 稳定

项目结构

目录结构

/
├── client/          # Vue 前端与管理端
├── server/          # NestJS 后端
├── docs/            # 项目文档
├── design/          # 需求、规格、计划与上下文
└── docker/          # 运行环境脚本

模块划分

模块 职责 依赖关系
client/src/App.vue 访客端工具列表、筛选和概览入口 client/src/api.js
client/src/pages/ToolDetailPage.vue 访客端工具详情与 Markdown 手册阅读 client/src/api.js, client/src/utils/markdown.js, client/src/utils/markdown-outline.js
client/src/admin/* 后台工具、分类和审计管理 client/src/admin/api.js
server/src/modules/tools/* 公开工具列表与详情查询 Prisma
server/src/modules/access/* 网页打开与下载行为 server/src/modules/tools/*

架构决策记录

日期 决策 理由 影响
2026-04-11 访客端详情页使用 slug 路由 链接可读、适合长期分享和直达访问 前后端同步支持 /tools/:slug
2026-04-11 继续复用 Tool.description 作为用户手册源 避免新增数据模型和后台复杂度 后台只需优化说明文案
2026-04-11 保留按 id 获取详情接口,同时新增按 slug 接口 降低回归风险,兼容既有调用 ToolsService 维护共享详情映射
2026-04-11 客户端引入 Vitest + Vue Test Utils + jsdom 详情页和路由改造需要前端自动化回归 client/package.json 和锁文件更新

依赖管理

项目依赖

依赖名称 版本 用途 来源
vitest ^3.2.4 客户端单元测试 npm
@vue/test-utils ^2.4.6 Vue 组件测试挂载 npm
jsdom ^26.1.0 客户端测试 DOM 环境 npm
marked ^17.0.5 Markdown 解析 npm
dompurify ^3.3.3 Markdown HTML 安全净化 npm

外部服务

服务 用途 配置位置
SQLite 工具、分类与访问数据存储 server/prisma/schema.prisma

技术债务

债务 影响 优先级 备注
客户端构建产物单 chunk 体积较大 Vite 构建有 chunk size warning 后续可考虑按公开页/管理页拆分 chunk
首页与详情页存在重复的 launch 行为逻辑 后续维护动作文案或追踪逻辑时需双处同步 可考虑抽成共享 composable

更新历史

日期 更新内容 触发来源
2026-04-11 初始创建,记录访客端详情页与前端测试基建落地情况 executing-plans 完成