/skyblog

A blog using Next.js for full-stack development.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

快了快了(新建文件夹中。。。)

数据存储

环境变量

以下是不适合公开的环境变量

# https://ipinfo.io/
TOKEN_IPINFO=7f4c6f9e0a32d8c

# netease cloud music
API_NETEASECLOUDMUSIC=https://netease-cloud-music-api-flysky.vercel.app

# https://cloud.browserless.io/
TOKEN_BROWSERLESS=3d0f06ec-ff26-4b05-8937-80fb1269f60d

# edge config edit
EDGE_ID=ecfg_7bhjqwklveuyz9ix4n2tr3mfa5gd8sp
## https://vercel.com/account/tokens
TOKEN_VERCEL=Z6Wn8v7YkAf5Ml0DxJzI1gBp

# cloudflare r2
## https://dash.cloudflare.com/e52dc36cf56603a6090e044725996f99/r2/overview
NEXT_PUBLIC_R2_SECRET=8j1a9s2d0f5g4h7j6k8l3m4n5b0v
NEXT_PUBLIC_R2_URL=https://r2-worker.flysky12138.workers.dev

# 登录
## https://github.com/settings/developers
## Authorization callback URL example: https://blog.flysky.xyz/api/auth/callback/github
GITHUB_ID=p2j1w7l0i4e9t5k8u3y6c
GITHUB_SECRET=5c8e2b4f7a3d9b1e6c0g2a5h9j1k4l6m7n0o
## 库用来加密令牌和电子邮件验证哈希的随机字符串
## 访问 https://generate-secret.vercel.app/32 可获取一个随机值
NEXTAUTH_SECRET=8j1a9s2d0f5g4h7j6k8l3m4n5b0v
## 使用自己的 CDN 一定要在 vercel 控制面板里添加 CDN 域名。未知原因,添加在 .env 里无效
AUTH_URL=

# CDN
CDN_URL=

规范

  1. 优先使用 tailwindcss,只有在使用 mui & joy 组建时需要修改内部指定类或 CSS 变量时才使用 sx 调整样式
  2. 为了减少客户端包的大小并充分利用服务器,请尽可能将状态 'use client' 移动到组件树的较低位置 参考 ↗
  3. /src/app/**/_components 是对应路由用的非通用组建。为了和文件路由区分,文件夹名用大驼峰
  4. 组件根标签是 div 等无意义标签,换成 sectionReact.Fragment 除外
  5. 接口类型导出 export type POST = MethodRequestType<{}>
  6. 对数据库的 CRUD 方法提取到外层,并命名为 db<Get|Post...>,以便使用 Prisma.PromiseReturnType<typeof dbGet> 获取返回类型
  7. 类型命名以 Type 结尾,接口不以 Type 结尾

  1. 若遇到无论如何都不能刷新缓存,看下 vercel 的构建日志吧,api 可能被识别为 ISR Function 了,api 文件中添加 export const dynamic = 'force-dynamic' 解决 参考 ↗