用途:这是一个 Cursor 技能(来自 aussiegingersnap/cursor-skills),用于在搭建或迁移 Next.js 16 项目时提供该版本特有的模式与约定,包括新的 proxy.ts 系统、缓存策略、App Router 写法,以及处理路由保护、缓存与 PPR、版本破坏性变更。
主要能力:
- proxy.ts 取代 middleware.ts:由 Edge 运行改为 Node.js 运行,导出名由 middleware 改为 proxy,支持完整 async/await,可使用 Node API。示例在项目根目录(与 app/ 同级)创建 proxy.ts,导出 async function proxy(request: NextRequest): Promise<NextResponse>,并用 config.matcher 匹配路径。
- 常见用途示例:身份验证代理(受保护路由与登录/注册路由重定向)、添加安全响应头、基于地理信息或功能标志设置头。
- 项目结构建议:proxy.ts、next.config.ts、drizzle.config.ts、src/app 下的路由组(如 (auth)、(dashboard))、components、lib、hooks、stores、providers 等。
- 服务端与客户端组件:默认服务端组件;需要事件、状态、副作用或浏览器 API 时加 'use client',并给出组合模式。
- 数据获取与缓存:fetch 的 no-store、force-cache、next.revalidate、next.tags,以及用 revalidateTag 按需失效。
- Server Actions:'use server'、结合 auth 与 zod 校验、数据库写入后用 revalidatePath 刷新,并在表单中用 useActionState 处理状态。
- 加载、错误与 404:loading.tsx、error.tsx(含 reset)、notFound 与 not-found.tsx。
- next.config.ts、环境变量命名(服务端变量与 NEXT_PUBLIC_ 前缀)、tsconfig.json 建议配置。
- 迁移清单:将 middleware.ts 重命名为 proxy.ts、导出改为 proxy、调整 Edge 专属代码、更新配置文件、测试受保护路由与异步逻辑。
使用方式:作为技能在相应开发环境中调用,按文档中的模式编写项目文件与代码。文档未提供安装命令或调用命令。
适用场景:新建 Next.js 16 项目、从早期版本迁移、实现路由保护、配置缓存与 PPR、理解版本破坏性变更。
限制:资料仅覆盖上述主题,未说明价格、平台支持、性能效果或版本发布时间等;具体 API 行为以官方为准。