版本冻结 v0.2.0,固化 2026-09-24 本轮全部变更。 admin-web: - 修复旧物善用管理页缺失样式类 .workspace-view / .view-header / .table-wrap, 此前页面无内边距导致内容被侧边栏遮挡、窄屏表格无横向滚动 - 修复服务统计页缺失样式类 .dashboard-grid / .dashboard-card / .stat-row, 此前 8 个指标卡退化为裸文本堆叠 - 补齐未定义的 --shadow-card 变量(财务编辑面板阴影此前失效) - 侧边栏 13 项导航由手写重复改为 NAV_ITEMS 数据驱动,并按业务顺序重排 - AdminIcon 补齐 coins / phone / volunteer / flag / calendar / recycle 语义图标 - 侧边栏行高与间距压缩使 13 项一屏放下,滚动条隐藏 - 小于等于 760px 断点导航由 display:none 改为横向滚动,移动端恢复可切换 api: - prisma.config.ts 显式加载仓库根 .env,修复 prisma generate / migrate 取不到 DATABASE_URL - dev / bootstrap:admin / test:integration 增加 tsx --env-file-if-exists=../../.env miniprogram: - custom-tab-bar 选中态与申请表单分步流程抽为可测纯函数并补充单测 - 页面完整性门禁脚本增强 工程: - 版本统一升位 0.1.0 到 0.2.0(根与 4 个 workspace 包) - .gitignore 增加 .pnpm-store/、.workbuddy/、微信开发者工具私人配置 与仓库根目录误生成的工程配置,避免本地产物与机器相关信息入库 验证:pnpm lint 通过、pnpm test:unit 19 个用例通过、miniprogram typecheck 通过、 admin-web typecheck 与 build 通过、pnpm install --frozen-lockfile 未改写 lockfile、 无头浏览器端到端登录复验通过、待提交内容密钥扫描无命中。 说明:本轮定位并排除了一起 Prisma 生成目录残缺事故——API 开发进程与并发的 prisma generate 争抢同一输出目录,Windows 文件锁导致只生成 34/56 个模型文件, 使 TS 全量类型解析失败并产生数千条 lint 报错;停止竞争进程后干净重新生成即恢复。 该生成目录已被 .gitignore 忽略,不进入版本库。
52 lines
1.8 KiB
JSON
52 lines
1.8 KiB
JSON
{
|
|
"name": "@lehuo/api",
|
|
"version": "0.2.0",
|
|
"private": true,
|
|
"type": "commonjs",
|
|
"scripts": {
|
|
"bootstrap:admin": "tsx --env-file-if-exists=../../.env src/scripts/bootstrap-admin.ts",
|
|
"build": "pnpm --filter @lehuo/contracts build && prisma generate && tsc -p tsconfig.build.json",
|
|
"db:deploy": "prisma migrate deploy",
|
|
"db:generate": "prisma generate",
|
|
"dev": "pnpm --filter @lehuo/contracts build && tsx watch --env-file-if-exists=../../.env src/main.ts",
|
|
"start": "node dist/main.js",
|
|
"test:integration": "pnpm --filter @lehuo/contracts build && tsx --env-file-if-exists=../../.env test/run-integration.ts",
|
|
"test:unit": "pnpm --filter @lehuo/contracts build && vitest run --config vitest.config.ts",
|
|
"typecheck": "prisma generate && tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.1106.0",
|
|
"@aws-sdk/s3-request-presigner": "^3.1106.0",
|
|
"@lehuo/contracts": "workspace:*",
|
|
"@nestjs/common": "^11.1.6",
|
|
"@nestjs/core": "^11.1.6",
|
|
"@nestjs/platform-express": "^11.1.6",
|
|
"@nestjs/swagger": "^11.4.6",
|
|
"@nestjs/throttler": "^6.5.0",
|
|
"@prisma/adapter-mariadb": "^7.9.1",
|
|
"@prisma/client": "^7.9.1",
|
|
"argon2": "^0.45.1",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.15.1",
|
|
"cookie-parser": "^1.4.7",
|
|
"mariadb": "^3.5.3",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.2",
|
|
"sanitize-html": "^2.17.6"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/testing": "^11.1.6",
|
|
"@types/cookie-parser": "^1.4.10",
|
|
"@types/express": "^5.0.6",
|
|
"@types/node": "^24.3.0",
|
|
"@types/sanitize-html": "^2.16.1",
|
|
"@types/supertest": "^6.0.3",
|
|
"dotenv": "^17.4.2",
|
|
"prisma": "^7.9.1",
|
|
"supertest": "^7.1.4",
|
|
"tsx": "^4.20.5",
|
|
"typescript": "^5.9.2",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|