fix: P0 工程修复(eslint 9 / .env.example / 联系表单后端)

- eslint 迁移至 v9 flat config + eslint-config-next 16,lint 脚本改为 eslint .(next lint 在 Next 16 已移除),新增 typecheck 脚本
- React Compiler 严格规则对存量代码降为警告,修复邮件模板未转义字符
- .env.example 补齐 RESEND_VERIFIED_DOMAIN / RESEND_FROM_NAME / NEXT_PUBLIC_APP_NAME / CONTACT_RECEIVER_EMAIL
- email.ts 发件地址改为发送时求值,避免冷启动缓存错误值
- 联系表单接入 server action:留言落库 contact_message,并邮件通知管理员(HTML 转义防注入)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
CoolChange.AI
2026-07-31 20:35:17 -07:00
co-authored by Claude Fable 5
parent f3088e996f
commit 89a9e318c2
10 changed files with 1192 additions and 672 deletions
+5 -4
View File
@@ -31,14 +31,15 @@
"dev": "node scripts/run-dev.mjs",
"build": "npm run generate:blog-manifest && next build",
"start": "next start",
"lint": "next lint",
"lint": "eslint .",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
"db:push": "drizzle-kit push",
"db:studio": "drizzle-kit studio",
"admin:setup": "tsx scripts/setup-admin.ts",
"seed:tools": "tsx scripts/seed-tools.ts",
"generate:blog-manifest": "node scripts/generate-blog-manifest.mjs"
"generate:blog-manifest": "node scripts/generate-blog-manifest.mjs",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.958.0",
@@ -96,8 +97,8 @@
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"dotenv": "^17.2.2",
"eslint": "^8",
"eslint-config-next": "14.2.3",
"eslint": "^9.39.5",
"eslint-config-next": "16.1.1",
"pg": "^8.16.3",
"playwright": "^1.57.0",
"png-to-ico": "^3.0.1",