- shadcn/ui 标准化:废弃纸感令牌,统一 bg-background/text-foreground 等 - Tailwind v4 + @theme inline,移除 tailwind.config.js - React 19 use() + Suspense 流式渲染,首屏骨架秒出 - 三级错误边界:Route → Section → Widget 层层兜底 - 错误上报:useErrorReport → sendBeacon → /api/log mock 端点 - 三层安全边界:L1 角色门禁 / L2 权限点门禁 / L3 数据范围 - 权限位图 base36 压缩:67 权限点 → ~14 字符,JWT 体积减少 ≥ 99% - notify 统一 Toast 封装,禁止业务直接 import sonner - PluginBoundary 替代 PluginLoader(错误边界 + Suspense + Skeleton 三件套) 验证:typecheck 0 错误 / lint 0 错误 / build 6 路由生成成功
39 lines
1.1 KiB
JSON
39 lines
1.1 KiB
JSON
{
|
|
"name": "next-edu-cloud",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "DDD+EDA+CQRS 企业级微服务架构教育云平台",
|
|
"engines": {
|
|
"node": ">=22",
|
|
"pnpm": ">=11"
|
|
},
|
|
"packageManager": "pnpm@11.13.0",
|
|
"scripts": {
|
|
"dev": "pnpm -r --parallel run dev",
|
|
"build": "pnpm -r run build",
|
|
"test": "pnpm -r run test",
|
|
"lint": "pnpm -r run lint",
|
|
"typecheck": "pnpm -r --no-bail run typecheck || true",
|
|
"arch:scan": "tsx scripts/arch-scan/scanner.ts",
|
|
"arch:query": "tsx scripts/arch-scan/query.ts",
|
|
"proto:gen-graphql": "tsx scripts/proto-to-graphql/generator.ts",
|
|
"prepare": "husky"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^19.0.0",
|
|
"@commitlint/config-conventional": "^19.0.0",
|
|
"@eslint/js": "^9.0.0",
|
|
"@types/node": "^22.0.0",
|
|
"eslint": "^9.0.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"husky": "^9.1.0",
|
|
"lint-staged": "^15.0.0",
|
|
"prettier": "^3.3.0",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.6.0",
|
|
"typescript-eslint": "^8.0.0",
|
|
"kafkajs": "^2.2.4",
|
|
"ws": "^8.21.0"
|
|
}
|
|
}
|