@devflow-tools/plugin-nextjs 0.4.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +703 -27
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,aAyyB1B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -64,50 +64,726 @@ export const nextjsPlugin = {
|
|
|
64
64
|
workflow: {
|
|
65
65
|
steps: [],
|
|
66
66
|
templates: [
|
|
67
|
+
// ── 新建页面 ──
|
|
67
68
|
{
|
|
68
69
|
name: "new-page",
|
|
69
70
|
description: "新建 Next.js 页面(路由 + 数据获取 + 渲染策略)",
|
|
70
|
-
version: "
|
|
71
|
+
version: "2.0.0",
|
|
71
72
|
steps: [
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
{
|
|
74
|
+
id: "determine-rendering",
|
|
75
|
+
title: "确定渲染策略",
|
|
76
|
+
instruction: [
|
|
77
|
+
"## 确定渲染策略(SSG / SSR / ISR 选型)",
|
|
78
|
+
"",
|
|
79
|
+
"根据页面需求选择合适的 Next.js 渲染策略。",
|
|
80
|
+
"",
|
|
81
|
+
"**执行动作**:",
|
|
82
|
+
"1. 分析页面数据特征:",
|
|
83
|
+
" - 数据是否每次请求都变化? → SSR(动态渲染)",
|
|
84
|
+
" - 数据可预先获取且变化不频繁? → SSG(静态生成)",
|
|
85
|
+
" - 需要定时更新但不需要每次请求都生成? → ISR(增量静态再生)",
|
|
86
|
+
" - 完全静态(无数据)? → 默认静态渲染",
|
|
87
|
+
"2. 检查页面是否需要用户特定数据(cookies、headers):",
|
|
88
|
+
" - 是 → SSR 或客户端获取",
|
|
89
|
+
" - 否 → SSG / ISR",
|
|
90
|
+
"3. 确定 URL 结构:",
|
|
91
|
+
" - 动态路由(如 `/posts/[id]`) → 使用 `generateStaticParams`",
|
|
92
|
+
" - 静态路由 → 直接创建 `page.tsx`",
|
|
93
|
+
"4. 查看 `next.config.ts` 中是否有相关配置",
|
|
94
|
+
"",
|
|
95
|
+
"**产出格式**:",
|
|
96
|
+
"```",
|
|
97
|
+
"route_path: </posts/[id]>",
|
|
98
|
+
"rendering_strategy: SSG | SSR | ISR | static",
|
|
99
|
+
"needs_generateStaticParams: true | false",
|
|
100
|
+
"revalidate_seconds: <N | false>",
|
|
101
|
+
"data_source: <数据库 | API | 静态>",
|
|
102
|
+
"```",
|
|
103
|
+
].join("\n"),
|
|
104
|
+
suggestedTools: ["Read", "Bash"],
|
|
105
|
+
output: "渲染策略决策(SSG/SSR/ISR)及数据获取方式",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: "create-route",
|
|
109
|
+
title: "创建 App Router 路由",
|
|
110
|
+
instruction: [
|
|
111
|
+
"## 创建 App Router 路由目录和 page.tsx",
|
|
112
|
+
"",
|
|
113
|
+
"基于 `determine-rendering` 的路由规划,创建对应的 App Router 文件结构。",
|
|
114
|
+
"",
|
|
115
|
+
"**执行动作**:",
|
|
116
|
+
"1. 创建路由目录(遵循 App Router 文件系统约定):",
|
|
117
|
+
" ```bash",
|
|
118
|
+
" mkdir -p app/<route-path>/",
|
|
119
|
+
" # 例如: mkdir -p app/posts/[id]/",
|
|
120
|
+
" # 动态路由用方括号: [id], [...slug], [[...slug]]",
|
|
121
|
+
" # 路由组用圆括号: (marketing)/about",
|
|
122
|
+
" ```",
|
|
123
|
+
"2. 创建 `page.tsx` 文件:",
|
|
124
|
+
" - 默认导出一个 React 组件",
|
|
125
|
+
" - Server Component 默认(不加 `'use client'`)",
|
|
126
|
+
" - 如需客户端交互(useState、useEffect、事件处理器)才加 `'use client'`",
|
|
127
|
+
"3. 编写 page 组件基础结构:",
|
|
128
|
+
" ```typescript",
|
|
129
|
+
" // app/posts/[id]/page.tsx",
|
|
130
|
+
" export default async function PostPage({ params }: { params: { id: string } }) {",
|
|
131
|
+
" // 数据获取将在 implement-data-fetching 步骤实现",
|
|
132
|
+
" return <div>Post {params.id}</div>;",
|
|
133
|
+
" }",
|
|
134
|
+
" ```",
|
|
135
|
+
"4. 检查 `app/layout.tsx` 是否存在(根布局必须有)",
|
|
136
|
+
"",
|
|
137
|
+
"**产出格式**:",
|
|
138
|
+
"```",
|
|
139
|
+
"route_directory: app/<route-path>/",
|
|
140
|
+
"page_file: app/<route-path>/page.tsx",
|
|
141
|
+
"is_client_component: true | false",
|
|
142
|
+
"dynamic_segments: [id, slug, ...]",
|
|
143
|
+
"```",
|
|
144
|
+
].join("\n"),
|
|
145
|
+
suggestedTools: ["Bash", "Read", "Write"],
|
|
146
|
+
output: "创建的路由目录和 page.tsx 文件",
|
|
147
|
+
depends: ["determine-rendering"],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: "create-layout",
|
|
151
|
+
title: "创建共享布局",
|
|
152
|
+
instruction: [
|
|
153
|
+
"## 创建 layout.tsx(共享布局 + metadata)",
|
|
154
|
+
"",
|
|
155
|
+
"为新建路由创建共享布局,定义页面结构和 SEO 元数据。",
|
|
156
|
+
"",
|
|
157
|
+
"**执行动作**:",
|
|
158
|
+
"1. 在路由目录创建 `layout.tsx`:",
|
|
159
|
+
" ```bash",
|
|
160
|
+
" ls app/<route-path>/",
|
|
161
|
+
" ```",
|
|
162
|
+
"2. 编写 layout 组件:",
|
|
163
|
+
" - 接收 `children` prop(嵌套的页面组件)",
|
|
164
|
+
" - 布局在导航时保持状态(不会重新渲染)",
|
|
165
|
+
" - 默认也是 Server Component",
|
|
166
|
+
" ```typescript",
|
|
167
|
+
" // app/posts/layout.tsx",
|
|
168
|
+
" import type { Metadata } from 'next';",
|
|
169
|
+
"",
|
|
170
|
+
" export const metadata: Metadata = {",
|
|
171
|
+
" title: 'Posts',",
|
|
172
|
+
" description: 'Browse all posts',",
|
|
173
|
+
" };",
|
|
174
|
+
"",
|
|
175
|
+
" export default function PostsLayout({ children }: { children: React.ReactNode }) {",
|
|
176
|
+
" return (",
|
|
177
|
+
" <section>",
|
|
178
|
+
" <nav>...</nav>",
|
|
179
|
+
" {children}",
|
|
180
|
+
" </section>",
|
|
181
|
+
" );",
|
|
182
|
+
" }",
|
|
183
|
+
" ```",
|
|
184
|
+
"3. 导出 `metadata` 对象(用于 SEO)或使用 `generateMetadata` 函数(动态 metadata)",
|
|
185
|
+
"4. 布局可嵌套:父布局包裹子布局",
|
|
186
|
+
"",
|
|
187
|
+
"**产出格式**:",
|
|
188
|
+
"```",
|
|
189
|
+
"layout_file: app/<route-path>/layout.tsx",
|
|
190
|
+
"has_metadata: true | false",
|
|
191
|
+
"metadata: { title, description, openGraph? }",
|
|
192
|
+
"```",
|
|
193
|
+
].join("\n"),
|
|
194
|
+
suggestedTools: ["Read", "Write"],
|
|
195
|
+
output: "创建的 layout.tsx 和 metadata 配置",
|
|
196
|
+
depends: ["create-route"],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: "add-loading-error",
|
|
200
|
+
title: "添加加载和错误状态",
|
|
201
|
+
instruction: [
|
|
202
|
+
"## 添加 loading.tsx 和 error.tsx",
|
|
203
|
+
"",
|
|
204
|
+
"为路由添加加载状态和错误边界,提升用户体验。",
|
|
205
|
+
"",
|
|
206
|
+
"**执行动作**:",
|
|
207
|
+
"1. 创建 `loading.tsx`(自动配合 Suspense 使用):",
|
|
208
|
+
" ```typescript",
|
|
209
|
+
" // app/<route-path>/loading.tsx",
|
|
210
|
+
" export default function Loading() {",
|
|
211
|
+
" return <div>Loading...</div>;",
|
|
212
|
+
" }",
|
|
213
|
+
" ```",
|
|
214
|
+
" - 当页面组件 suspend 时自动显示",
|
|
215
|
+
" - 可配合 `react-loading-skeleton` 或自定义 skeleton",
|
|
216
|
+
"2. 创建 `error.tsx`(React 错误边界):",
|
|
217
|
+
" ```typescript",
|
|
218
|
+
" // app/<route-path>/error.tsx",
|
|
219
|
+
" 'use client'; // 必须是 Client Component",
|
|
220
|
+
"",
|
|
221
|
+
" export default function Error({ error, reset }: { error: Error; reset: () => void }) {",
|
|
222
|
+
" return (",
|
|
223
|
+
" <div>",
|
|
224
|
+
" <h2>Something went wrong</h2>",
|
|
225
|
+
" <button onClick={() => reset()}>Try again</button>",
|
|
226
|
+
" </div>",
|
|
227
|
+
" );",
|
|
228
|
+
" }",
|
|
229
|
+
" ```",
|
|
230
|
+
" - 必须标记 `'use client'`(因为用到事件处理器)",
|
|
231
|
+
" - 提供 `reset` 函数让用户重试",
|
|
232
|
+
"3. 创建 `not-found.tsx`(404 页面,可选)",
|
|
233
|
+
"",
|
|
234
|
+
"**产出格式**:",
|
|
235
|
+
"```",
|
|
236
|
+
"loading_file: app/<route-path>/loading.tsx",
|
|
237
|
+
"error_file: app/<route-path>/error.tsx",
|
|
238
|
+
"not_found_file: app/<route-path>/not-found.tsx | null",
|
|
239
|
+
"```",
|
|
240
|
+
].join("\n"),
|
|
241
|
+
suggestedTools: ["Read", "Write"],
|
|
242
|
+
output: "创建的 loading.tsx、error.tsx 文件",
|
|
243
|
+
depends: ["create-route"],
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
id: "implement-data-fetching",
|
|
247
|
+
title: "实现数据获取",
|
|
248
|
+
instruction: [
|
|
249
|
+
"## 实现数据获取",
|
|
250
|
+
"",
|
|
251
|
+
"基于 `determine-rendering` 的渲染策略,在 Server Component 中实现数据获取。",
|
|
252
|
+
"",
|
|
253
|
+
"**执行动作**:",
|
|
254
|
+
"1. 根据渲染策略实现数据获取:",
|
|
255
|
+
"",
|
|
256
|
+
" **SSG(静态生成)**:",
|
|
257
|
+
" ```typescript",
|
|
258
|
+
" // app/posts/[id]/page.tsx",
|
|
259
|
+
" export async function generateStaticParams() {",
|
|
260
|
+
" const posts = await fetch('https://api.example.com/posts').then(res => res.json());",
|
|
261
|
+
" return posts.map((post) => ({ id: post.id }));",
|
|
262
|
+
" }",
|
|
263
|
+
"",
|
|
264
|
+
" export default async function PostPage({ params }: { params: { id: string } }) {",
|
|
265
|
+
" const post = await fetch(`https://api.example.com/posts/${params.id}`).then(res => res.json());",
|
|
266
|
+
" return <article>{post.title}</article>;",
|
|
267
|
+
" }",
|
|
268
|
+
" ```",
|
|
269
|
+
"",
|
|
270
|
+
" **SSR(动态渲染)**:",
|
|
271
|
+
" ```typescript",
|
|
272
|
+
" export const dynamic = 'force-dynamic'; // 或默认",
|
|
273
|
+
"",
|
|
274
|
+
" export default async function PostPage({ params }: { params: { id: string } }) {",
|
|
275
|
+
" const post = await fetch(`...`, { cache: 'no-store' }).then(res => res.json());",
|
|
276
|
+
" return <article>{post.title}</article>;",
|
|
277
|
+
" }",
|
|
278
|
+
" ```",
|
|
279
|
+
"",
|
|
280
|
+
" **ISR(增量再生)**:",
|
|
281
|
+
" ```typescript",
|
|
282
|
+
" export const revalidate = 60; // 60 秒后重新验证",
|
|
283
|
+
"",
|
|
284
|
+
" export default async function PostPage({ params }: { params: { id: string } }) {",
|
|
285
|
+
" const post = await fetch(`...`, { next: { revalidate: 60 } }).then(res => res.json());",
|
|
286
|
+
" return <article>{post.title}</article>;",
|
|
287
|
+
" }",
|
|
288
|
+
" ```",
|
|
289
|
+
"2. 使用 `fetch + cache()` 封装可复用的数据获取:",
|
|
290
|
+
" ```typescript",
|
|
291
|
+
" import { cache } from 'react';",
|
|
292
|
+
" export const getPost = cache(async (id: string) => {",
|
|
293
|
+
" return fetch(`...`).then(res => res.json());",
|
|
294
|
+
" });",
|
|
295
|
+
" ```",
|
|
296
|
+
"3. 处理 loading / error / not-found 状态",
|
|
297
|
+
"4. 添加 TypeScript 类型定义",
|
|
298
|
+
"",
|
|
299
|
+
"**产出格式**:",
|
|
300
|
+
"```",
|
|
301
|
+
"data_fetching_approach: generateStaticParams | async-component | revalidate",
|
|
302
|
+
"fetch_function: getPost | getPosts | ...",
|
|
303
|
+
"cache_strategy: force-cache | no-store | revalidate",
|
|
304
|
+
"files_modified: [{ path, changes }]",
|
|
305
|
+
"```",
|
|
306
|
+
].join("\n"),
|
|
307
|
+
suggestedTools: ["Read", "Write", "Edit"],
|
|
308
|
+
output: "实现的数据获取逻辑和缓存策略",
|
|
309
|
+
depends: ["determine-rendering", "create-route"],
|
|
310
|
+
},
|
|
311
|
+
{ id: "type-check", stepTemplate: "type-check", depends: ["implement-data-fetching"] },
|
|
312
|
+
{ id: "build-verify", stepTemplate: "build-verify", depends: ["type-check"] },
|
|
313
|
+
],
|
|
314
|
+
triggers: [
|
|
315
|
+
{ type: "cli", command: "new:page" },
|
|
316
|
+
{ type: "mcp", tool: "new_page" },
|
|
79
317
|
],
|
|
80
|
-
triggers: [{ type: "cli", command: "new:page" }, { type: "mcp", tool: "new_page" }],
|
|
81
318
|
},
|
|
319
|
+
// ── Pages → App 迁移 ──
|
|
82
320
|
{
|
|
83
321
|
name: "migrate-pages-to-app",
|
|
84
322
|
description: "Pages Router → App Router 迁移:路由映射 → 数据获取 → 渐进迁移",
|
|
85
|
-
version: "
|
|
323
|
+
version: "2.0.0",
|
|
86
324
|
steps: [
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
325
|
+
{
|
|
326
|
+
id: "inventory-pages",
|
|
327
|
+
title: "盘点现有页面",
|
|
328
|
+
instruction: [
|
|
329
|
+
"## 盘点所有 Pages Router 页面",
|
|
330
|
+
"",
|
|
331
|
+
"扫描项目中所有使用 Pages Router 的页面、数据获取方式和 API 路由。",
|
|
332
|
+
"",
|
|
333
|
+
"**执行动作**:",
|
|
334
|
+
"1. 列出 `pages/` 目录下所有页面文件:",
|
|
335
|
+
" ```bash",
|
|
336
|
+
" find pages/ -type f \\( -name '*.tsx' -o -name '*.ts' -o -name '*.jsx' -o -name '*.js' \\) | grep -v '_app\\|_document\\|api/' | sort",
|
|
337
|
+
" ```",
|
|
338
|
+
"2. 识别每个页面的数据获取方式:",
|
|
339
|
+
" ```bash",
|
|
340
|
+
" grep -rn 'getServerSideProps\\|getStaticProps\\|getStaticPaths\\|getInitialProps' pages/ --include='*.tsx' --include='*.ts'",
|
|
341
|
+
" ```",
|
|
342
|
+
"3. 列出所有 API Routes:",
|
|
343
|
+
" ```bash",
|
|
344
|
+
" find pages/api/ -type f | sort",
|
|
345
|
+
" ```",
|
|
346
|
+
"4. 检查 `_app.tsx` 和 `_document.tsx` 的自定义内容:",
|
|
347
|
+
" ```bash",
|
|
348
|
+
" cat pages/_app.tsx 2>/dev/null || cat pages/_app.jsx 2>/dev/null",
|
|
349
|
+
" cat pages/_document.tsx 2>/dev/null || cat pages/_document.jsx 2>/dev/null",
|
|
350
|
+
" ```",
|
|
351
|
+
"5. 检查 `next.config.js` 或 `next.config.ts` 配置:",
|
|
352
|
+
" ```bash",
|
|
353
|
+
" cat next.config.* 2>/dev/null | head -50",
|
|
354
|
+
" ```",
|
|
355
|
+
"",
|
|
356
|
+
"**产出格式**:",
|
|
357
|
+
"```",
|
|
358
|
+
"pages: [",
|
|
359
|
+
" { route: '/dashboard', file: 'pages/dashboard.tsx', data_fetching: 'getServerSideProps' },",
|
|
360
|
+
" { route: '/posts/[id]', file: 'pages/posts/[id].tsx', data_fetching: 'getStaticProps + getStaticPaths' },",
|
|
361
|
+
"]",
|
|
362
|
+
"api_routes: [",
|
|
363
|
+
" { route: '/api/users', file: 'pages/api/users.ts', methods: ['GET', 'POST'] },",
|
|
364
|
+
"]",
|
|
365
|
+
"custom_app: true | false,",
|
|
366
|
+
"custom_document: true | false,",
|
|
367
|
+
"```",
|
|
368
|
+
].join("\n"),
|
|
369
|
+
suggestedTools: ["Bash", "Read"],
|
|
370
|
+
output: "Pages Router 完整清单(页面、数据获取、API 路由)",
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
id: "map-routes",
|
|
374
|
+
title: "映射路由结构",
|
|
375
|
+
instruction: [
|
|
376
|
+
"## 映射路由到 App Router 结构",
|
|
377
|
+
"",
|
|
378
|
+
"将 `inventory-pages` 中的每个 Pages Router 路由映射到 App Router 文件结构。",
|
|
379
|
+
"",
|
|
380
|
+
"**执行动作**:",
|
|
381
|
+
"1. 为每个页面创建映射关系:",
|
|
382
|
+
" ```",
|
|
383
|
+
" pages/index.tsx → app/page.tsx",
|
|
384
|
+
" pages/about.tsx → app/about/page.tsx",
|
|
385
|
+
" pages/posts/[id].tsx → app/posts/[id]/page.tsx",
|
|
386
|
+
" pages/blog/[...slug].tsx → app/blog/[...slug]/page.tsx",
|
|
387
|
+
" pages/(group)/x.tsx → app/(group)/x/page.tsx",
|
|
388
|
+
" ```",
|
|
389
|
+
"2. 创建 `app/` 目录结构:",
|
|
390
|
+
" ```bash",
|
|
391
|
+
" mkdir -p app/",
|
|
392
|
+
" # 为每个路由创建对应目录",
|
|
393
|
+
" ```",
|
|
394
|
+
"3. 迁移 `_app.tsx` 内容到 `app/layout.tsx`:",
|
|
395
|
+
" - 全局 Providers(Theme、Auth、QueryClient)",
|
|
396
|
+
" - 全局样式导入",
|
|
397
|
+
"4. 迁移 `_document.tsx` 内容(如自定义 HTML/head):",
|
|
398
|
+
" - 使用 `app/layout.tsx` 的 `<html>` 和 `<body>` 标签",
|
|
399
|
+
" - Metadata API 替代 `<Head>` 组件",
|
|
400
|
+
"5. 迁移路由级布局(如共享侧边栏)到 `layout.tsx`",
|
|
401
|
+
"",
|
|
402
|
+
"**产出格式**:",
|
|
403
|
+
"```",
|
|
404
|
+
"route_mapping: [",
|
|
405
|
+
" { from: 'pages/about.tsx', to: 'app/about/page.tsx' },",
|
|
406
|
+
" { from: 'pages/posts/[id].tsx', to: 'app/posts/[id]/page.tsx' },",
|
|
407
|
+
"]",
|
|
408
|
+
"layouts_created: ['app/layout.tsx', 'app/posts/layout.tsx'],",
|
|
409
|
+
"```",
|
|
410
|
+
].join("\n"),
|
|
411
|
+
suggestedTools: ["Bash", "Read", "Write"],
|
|
412
|
+
output: "路由映射表和创建的 App Router 目录结构",
|
|
413
|
+
depends: ["inventory-pages"],
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
id: "migrate-data-fetching",
|
|
417
|
+
title: "迁移数据获取",
|
|
418
|
+
instruction: [
|
|
419
|
+
"## 迁移数据获取(Pages → App Router)",
|
|
420
|
+
"",
|
|
421
|
+
"将 Pages Router 的数据获取方式迁移到 App Router 的 async components。",
|
|
422
|
+
"",
|
|
423
|
+
"**执行动作**:",
|
|
424
|
+
"1. **`getServerSideProps` → async Server Component**:",
|
|
425
|
+
" ```typescript",
|
|
426
|
+
" // 旧: pages/dashboard.tsx",
|
|
427
|
+
" export async function getServerSideProps(context) {",
|
|
428
|
+
" const data = await fetch(...);",
|
|
429
|
+
" return { props: { data } };",
|
|
430
|
+
" }",
|
|
431
|
+
" export default function Dashboard({ data }) { ... }",
|
|
432
|
+
"",
|
|
433
|
+
" // 新: app/dashboard/page.tsx",
|
|
434
|
+
" export default async function DashboardPage() {",
|
|
435
|
+
" const data = await fetch(..., { cache: 'no-store' });",
|
|
436
|
+
" return <Dashboard data={data} />;",
|
|
437
|
+
" }",
|
|
438
|
+
" ```",
|
|
439
|
+
"",
|
|
440
|
+
"2. **`getStaticProps` + `getStaticPaths` → `generateStaticParams`**:",
|
|
441
|
+
" ```typescript",
|
|
442
|
+
" // 新: app/posts/[id]/page.tsx",
|
|
443
|
+
" export async function generateStaticParams() {",
|
|
444
|
+
" const posts = await fetch(...).then(res => res.json());",
|
|
445
|
+
" return posts.map(p => ({ id: p.id }));",
|
|
446
|
+
" }",
|
|
447
|
+
" export default async function PostPage({ params }) {",
|
|
448
|
+
" const post = await fetch(`${API}/posts/${params.id}`);",
|
|
449
|
+
" return <Post post={post} />;",
|
|
450
|
+
" }",
|
|
451
|
+
" ```",
|
|
452
|
+
"",
|
|
453
|
+
"3. **`getInitialProps` → 重构为 async component 或客户端获取**",
|
|
454
|
+
"",
|
|
455
|
+
"4. 迁移 `context` 参数:",
|
|
456
|
+
" - `context.params` → `params` prop",
|
|
457
|
+
" - `context.query` → `searchParams` prop",
|
|
458
|
+
" - `context.req/res` → Route Handlers 或 cookies()/headers()",
|
|
459
|
+
"",
|
|
460
|
+
"**产出格式**:",
|
|
461
|
+
"```",
|
|
462
|
+
"migrated_pages: [",
|
|
463
|
+
" { from: 'pages/x.tsx', fetching_before: 'getServerSideProps', fetching_after: 'async component' },",
|
|
464
|
+
"]",
|
|
465
|
+
"files_modified: [{ path, changes }]",
|
|
466
|
+
"```",
|
|
467
|
+
].join("\n"),
|
|
468
|
+
suggestedTools: ["Read", "Write", "Edit"],
|
|
469
|
+
output: "迁移后的数据获取逻辑",
|
|
470
|
+
depends: ["map-routes"],
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
id: "add-loading-states",
|
|
474
|
+
title: "添加加载状态",
|
|
475
|
+
instruction: [
|
|
476
|
+
"## 添加 loading.tsx 和 Suspense 边界",
|
|
477
|
+
"",
|
|
478
|
+
"为迁移后的页面添加加载状态和 Suspense 边界。",
|
|
479
|
+
"",
|
|
480
|
+
"**执行动作**:",
|
|
481
|
+
"1. 为每个数据获取页面创建 `loading.tsx`:",
|
|
482
|
+
" ```bash",
|
|
483
|
+
" # 找到所有有数据获取的路由目录",
|
|
484
|
+
" grep -rn 'await fetch\\|await get' app/ --include='*.tsx' -l | sed 's|/page.tsx||' | sort -u",
|
|
485
|
+
" ```",
|
|
486
|
+
"2. 创建 `loading.tsx` 使用 Skeleton 或 Spinner:",
|
|
487
|
+
" ```typescript",
|
|
488
|
+
" export default function Loading() {",
|
|
489
|
+
" return <div className='animate-pulse'>Loading...</div>;",
|
|
490
|
+
" }",
|
|
491
|
+
" ```",
|
|
492
|
+
"3. 在 Server Component 中使用 `<Suspense>` 包裹慢速数据获取:",
|
|
493
|
+
" ```typescript",
|
|
494
|
+
" import { Suspense } from 'react';",
|
|
495
|
+
"",
|
|
496
|
+
" export default function Page() {",
|
|
497
|
+
" return (",
|
|
498
|
+
" <Suspense fallback={<Loading />}>",
|
|
499
|
+
" <SlowDataComponent />",
|
|
500
|
+
" </Suspense>",
|
|
501
|
+
" );",
|
|
502
|
+
" }",
|
|
503
|
+
" ```",
|
|
504
|
+
"4. 为每个有数据获取的路由创建 `error.tsx` 错误边界",
|
|
505
|
+
"",
|
|
506
|
+
"**产出格式**:",
|
|
507
|
+
"```",
|
|
508
|
+
"loading_files: ['app/dashboard/loading.tsx', ...],",
|
|
509
|
+
"suspense_boundaries: [{ file, wrapped_component }],",
|
|
510
|
+
"error_files: ['app/dashboard/error.tsx', ...],",
|
|
511
|
+
"```",
|
|
512
|
+
].join("\n"),
|
|
513
|
+
suggestedTools: ["Bash", "Read", "Write"],
|
|
514
|
+
output: "创建的 loading.tsx 和 Suspense 边界",
|
|
515
|
+
depends: ["migrate-data-fetching"],
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
id: "migrate-api-routes",
|
|
519
|
+
title: "迁移 API 路由",
|
|
520
|
+
instruction: [
|
|
521
|
+
"## 迁移 API Routes 到 Route Handlers",
|
|
522
|
+
"",
|
|
523
|
+
"将 `pages/api/` 下的 API 路由迁移到 App Router 的 Route Handlers。",
|
|
524
|
+
"",
|
|
525
|
+
"**执行动作**:",
|
|
526
|
+
"1. 将每个 API 路由文件迁移到 Route Handler:",
|
|
527
|
+
" ```",
|
|
528
|
+
" pages/api/users.ts → app/api/users/route.ts",
|
|
529
|
+
" pages/api/posts/[id].ts → app/api/posts/[id]/route.ts",
|
|
530
|
+
" ```",
|
|
531
|
+
"2. 转换导出格式:",
|
|
532
|
+
" ```typescript",
|
|
533
|
+
" // 旧: pages/api/users.ts",
|
|
534
|
+
" export default function handler(req: NextApiRequest, res: NextApiResponse) {",
|
|
535
|
+
" if (req.method === 'GET') { ... }",
|
|
536
|
+
" }",
|
|
537
|
+
"",
|
|
538
|
+
" // 新: app/api/users/route.ts",
|
|
539
|
+
" import { NextRequest, NextResponse } from 'next/server';",
|
|
540
|
+
"",
|
|
541
|
+
" export async function GET(request: NextRequest) {",
|
|
542
|
+
" return NextResponse.json({ data: ... });",
|
|
543
|
+
" }",
|
|
544
|
+
" export async function POST(request: NextRequest) {",
|
|
545
|
+
" const body = await request.json();",
|
|
546
|
+
" return NextResponse.json({ data: ... });",
|
|
547
|
+
" }",
|
|
548
|
+
" ```",
|
|
549
|
+
"3. 转换请求解析方式:",
|
|
550
|
+
" - `req.query` → `request.nextUrl.searchParams`",
|
|
551
|
+
" - `req.body` → `await request.json()`",
|
|
552
|
+
" - `req.headers` → `request.headers`",
|
|
553
|
+
" - `res.status(200).json(data)` → `NextResponse.json(data)`",
|
|
554
|
+
"4. 检查是否需要 Edge Runtime(`export const runtime = 'edge'`)",
|
|
555
|
+
"5. 创建对应目录:",
|
|
556
|
+
" ```bash",
|
|
557
|
+
" mkdir -p app/api/users/",
|
|
558
|
+
" ```",
|
|
559
|
+
"",
|
|
560
|
+
"**产出格式**:",
|
|
561
|
+
"```",
|
|
562
|
+
"migrated_api_routes: [",
|
|
563
|
+
" { from: 'pages/api/users.ts', to: 'app/api/users/route.ts', methods: ['GET', 'POST'] },",
|
|
564
|
+
"]",
|
|
565
|
+
"edge_runtime_routes: ['app/api/users/route.ts'],",
|
|
566
|
+
"```",
|
|
567
|
+
].join("\n"),
|
|
568
|
+
suggestedTools: ["Bash", "Read", "Write", "Edit"],
|
|
569
|
+
output: "迁移后的 Route Handlers",
|
|
570
|
+
depends: ["map-routes"],
|
|
571
|
+
},
|
|
572
|
+
{ id: "build-test", stepTemplate: "build-verify", depends: ["add-loading-states", "migrate-api-routes"] },
|
|
573
|
+
],
|
|
574
|
+
triggers: [
|
|
575
|
+
{ type: "cli", command: "migrate:app-router" },
|
|
93
576
|
],
|
|
94
|
-
triggers: [{ type: "cli", command: "migrate:app-router" }],
|
|
95
577
|
},
|
|
578
|
+
// ── Bug 诊断 ──
|
|
96
579
|
{
|
|
97
580
|
name: "bug-diagnosis",
|
|
98
581
|
description: "Next.js Bug 诊断:错误类型 → 渲染层 → 构建配置 → 修复",
|
|
99
|
-
version: "
|
|
582
|
+
version: "2.0.0",
|
|
100
583
|
steps: [
|
|
101
|
-
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
584
|
+
{
|
|
585
|
+
id: "classify-error",
|
|
586
|
+
title: "分类错误类型",
|
|
587
|
+
instruction: [
|
|
588
|
+
"## 分类错误(编译 / 运行时 / 构建 / 部署错误)",
|
|
589
|
+
"",
|
|
590
|
+
"根据错误信息分类,确定排查方向。",
|
|
591
|
+
"",
|
|
592
|
+
"**执行动作**:",
|
|
593
|
+
"1. 收集错误信息:",
|
|
594
|
+
" - 浏览器控制台错误",
|
|
595
|
+
" - 终端构建/开发服务器输出",
|
|
596
|
+
" - Vercel 部署日志(如适用)",
|
|
597
|
+
"2. 分类错误类型:",
|
|
598
|
+
" - **编译错误**:TypeScript 错误、ESLint 错误、语法错误",
|
|
599
|
+
" - **运行时错误**:Hydration mismatch、客户端/服务端不一致、React 错误边界",
|
|
600
|
+
" - **构建错误**:`next build` 失败、webpack/turbopack 错误",
|
|
601
|
+
" - **部署错误**:Vercel 函数超时、Edge Runtime 不兼容",
|
|
602
|
+
" - **渲染错误**:SSR/SSG 失败、Server Component 错误",
|
|
603
|
+
"3. 记录错误出现时机:",
|
|
604
|
+
" - 开发时 vs 生产构建",
|
|
605
|
+
" - 首次加载 vs 客户端导航",
|
|
606
|
+
"",
|
|
607
|
+
"**产出格式**:",
|
|
608
|
+
"```",
|
|
609
|
+
"error_type: compile | runtime | build | deploy | rendering",
|
|
610
|
+
"error_message: <完整错误消息>",
|
|
611
|
+
"stack_trace: <关键帧>",
|
|
612
|
+
"occurs_in: dev | prod | both",
|
|
613
|
+
"trigger: initial-load | client-navigation | api-call",
|
|
614
|
+
"```",
|
|
615
|
+
].join("\n"),
|
|
616
|
+
suggestedTools: ["Read", "Bash"],
|
|
617
|
+
output: "错误分类和上下文信息",
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
id: "check-rendering-layer",
|
|
621
|
+
title: "检查渲染层问题",
|
|
622
|
+
instruction: [
|
|
623
|
+
"## 检查 Server/Client Component 边界问题",
|
|
624
|
+
"",
|
|
625
|
+
"排查是否是 Server Component 和 Client Component 的边界问题。",
|
|
626
|
+
"",
|
|
627
|
+
"**执行动作**:",
|
|
628
|
+
"1. 检查 Hydration 错误(常见错误码:",
|
|
629
|
+
" - **Text content does not match**:服务端和客户端渲染内容不一致",
|
|
630
|
+
" - **Expected server HTML to contain a matching**:DOM 结构不匹配",
|
|
631
|
+
"2. 检查 `'use client'` 使用是否正确:",
|
|
632
|
+
" ```bash",
|
|
633
|
+
" grep -rn \"'use client'\" app/ --include='*.tsx' --include='*.ts'",
|
|
634
|
+
" ```",
|
|
635
|
+
"3. 检查 Server Component 中是否使用了客户端 Hook:",
|
|
636
|
+
" - useState、useEffect、useContext 等只能在 Client Component 使用",
|
|
637
|
+
" - 事件处理器(onClick、onChange)只能在 Client Component",
|
|
638
|
+
" - `window`、`document`、`localStorage` 只能在 Client Component",
|
|
639
|
+
"4. 检查 Client Component 是否直接 import 了 Server-only 模块:",
|
|
640
|
+
" - 数据库客户端、文件系统、服务端密钥",
|
|
641
|
+
" - 应使用 `server-only` 包保护",
|
|
642
|
+
"5. 检查序列化问题:",
|
|
643
|
+
" - Props 从 Server Component 传递给 Client Component 必须可序列化",
|
|
644
|
+
" - 不能传递函数、类实例、Date 对象(需转换为字符串)",
|
|
645
|
+
"",
|
|
646
|
+
"**产出格式**:",
|
|
647
|
+
"```",
|
|
648
|
+
"hydration_issues: [{ file, line, issue_type: 'use-client-missing' | 'serialization' | 'hook-in-server' }],",
|
|
649
|
+
"boundary_violations: [{ file, issue: '...' }],",
|
|
650
|
+
"```",
|
|
651
|
+
].join("\n"),
|
|
652
|
+
suggestedTools: ["Bash", "Read"],
|
|
653
|
+
output: "渲染层问题分析结果",
|
|
654
|
+
depends: ["classify-error"],
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
id: "check-build-config",
|
|
658
|
+
title: "检查构建配置",
|
|
659
|
+
instruction: [
|
|
660
|
+
"## 检查 next.config.ts 配置",
|
|
661
|
+
"",
|
|
662
|
+
"排查 Next.js 配置文件是否有问题。",
|
|
663
|
+
"",
|
|
664
|
+
"**执行动作**:",
|
|
665
|
+
"1. 读取 `next.config.ts` 或 `next.config.js`:",
|
|
666
|
+
" ```bash",
|
|
667
|
+
" cat next.config.ts 2>/dev/null || cat next.config.js 2>/dev/null || cat next.config.mjs 2>/dev/null",
|
|
668
|
+
" ```",
|
|
669
|
+
"2. 检查常见配置问题:",
|
|
670
|
+
" - `images.domains` / `images.remotePatterns` 是否正确配置",
|
|
671
|
+
" - `experimental` 功能是否启用但实际未使用",
|
|
672
|
+
" - `output: 'standalone'` 是否与部署目标匹配",
|
|
673
|
+
" - `basePath` / `trailingSlash` 是否影响路由",
|
|
674
|
+
" - `redirects` / `rewrites` 是否有冲突",
|
|
675
|
+
"3. 检查 TypeScript 配置:",
|
|
676
|
+
" ```bash",
|
|
677
|
+
" cat tsconfig.json",
|
|
678
|
+
" ```",
|
|
679
|
+
" - `compilerOptions.paths` 是否正确",
|
|
680
|
+
" - `include` / `exclude` 是否遗漏了 `app/` 目录",
|
|
681
|
+
"4. 检查环境变量:",
|
|
682
|
+
" ```bash",
|
|
683
|
+
" cat .env.local 2>/dev/null | head -20",
|
|
684
|
+
" cat .env 2>/dev/null | head -20",
|
|
685
|
+
" ```",
|
|
686
|
+
" - `NEXT_PUBLIC_*` 前缀是否正确(客户端可访问)",
|
|
687
|
+
" - 敏感变量是否缺少前缀(只在服务端使用)",
|
|
688
|
+
"",
|
|
689
|
+
"**产出格式**:",
|
|
690
|
+
"```",
|
|
691
|
+
"config_issues: [{ file, key, issue: '...' }],",
|
|
692
|
+
"env_issues: [{ var_name, issue: 'missing NEXT_PUBLIC_ prefix' }],",
|
|
693
|
+
"typescript_issues: [{ file, issue: '...' }],",
|
|
694
|
+
"```",
|
|
695
|
+
].join("\n"),
|
|
696
|
+
suggestedTools: ["Read", "Bash"],
|
|
697
|
+
output: "构建配置问题分析结果",
|
|
698
|
+
depends: ["classify-error"],
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
id: "check-cache",
|
|
702
|
+
title: "检查缓存行为",
|
|
703
|
+
instruction: [
|
|
704
|
+
"## 检查缓存行为是否导致数据过期",
|
|
705
|
+
"",
|
|
706
|
+
"排查 Next.js 缓存策略是否导致数据不更新。",
|
|
707
|
+
"",
|
|
708
|
+
"**执行动作**:",
|
|
709
|
+
"1. 检查数据获取的缓存配置:",
|
|
710
|
+
" ```bash",
|
|
711
|
+
" grep -rn 'fetch(' app/ --include='*.tsx' --include='*.ts' -A 3",
|
|
712
|
+
" ```",
|
|
713
|
+
" - 检查 `cache` 选项:`force-cache`(默认)、`no-store`、`no-cache`",
|
|
714
|
+
" - 检查 `next.revalidate` 选项",
|
|
715
|
+
"2. 检查 `revalidate` 配置:",
|
|
716
|
+
" ```bash",
|
|
717
|
+
" grep -rn 'export const revalidate\\|export const dynamic' app/ --include='*.tsx' --include='*.ts'",
|
|
718
|
+
" ```",
|
|
719
|
+
"3. 检查是否使用了 `unstable_cache` 或 `cache()`:",
|
|
720
|
+
" ```bash",
|
|
721
|
+
" grep -rn 'unstable_cache\\|from.*react.*cache' app/ --include='*.tsx' --include='*.ts'",
|
|
722
|
+
" ```",
|
|
723
|
+
"4. 检查 ISR 配置:",
|
|
724
|
+
" - `generateStaticParams` 的 `revalidate` 设置",
|
|
725
|
+
" - `revalidatePath()` / `revalidateTag()` 调用",
|
|
726
|
+
"5. 排查 Router Cache(客户端路由缓存):",
|
|
727
|
+
" - `router.refresh()` 是否用于强制刷新",
|
|
728
|
+
" - `<Link>` 组件的 `prefetch` 属性",
|
|
729
|
+
"",
|
|
730
|
+
"**产出格式**:",
|
|
731
|
+
"```",
|
|
732
|
+
"cache_configurations: [{ file, fetch_options, revalidate }],",
|
|
733
|
+
"stale_data_risks: [{ route, issue: '...' }],",
|
|
734
|
+
"recommended_fix: '...' ,",
|
|
735
|
+
"```",
|
|
736
|
+
].join("\n"),
|
|
737
|
+
suggestedTools: ["Bash", "Read"],
|
|
738
|
+
output: "缓存问题分析结果",
|
|
739
|
+
depends: ["classify-error"],
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
id: "search-docs",
|
|
743
|
+
title: "搜索 Next.js 文档",
|
|
744
|
+
instruction: [
|
|
745
|
+
"## 搜索 Next.js 官方文档",
|
|
746
|
+
"",
|
|
747
|
+
"基于前面步骤收集的信息,搜索 Next.js 官方文档寻找解决方案。",
|
|
748
|
+
"",
|
|
749
|
+
"**执行动作**:",
|
|
750
|
+
"1. 根据错误类型提取关键词:",
|
|
751
|
+
" - Hydration → `hydration mismatch`、`text content does not match`",
|
|
752
|
+
" - Build → `next build failed`、`module not found`",
|
|
753
|
+
" - Rendering → `server component error`、`use client`",
|
|
754
|
+
" - Cache → `stale data`、`revalidate`、`ISR`",
|
|
755
|
+
"2. 搜索 Next.js 官方文档:",
|
|
756
|
+
" ```bash",
|
|
757
|
+
" # 使用 devflow 知识库查询",
|
|
758
|
+
" # 关键词: nextjs hydration, nextjs server components, nextjs caching",
|
|
759
|
+
" ```",
|
|
760
|
+
"3. 查阅相关文档页面:",
|
|
761
|
+
" - https://nextjs.org/docs/app/building-your-application/rendering",
|
|
762
|
+
" - https://nextjs.org/docs/app/building-your-application/data-fetching",
|
|
763
|
+
" - https://nextjs.org/docs/app/api-reference",
|
|
764
|
+
"4. 查找 GitHub Issues 和 Discussions",
|
|
765
|
+
"5. 整理出 2-3 条最相关的解决方案",
|
|
766
|
+
"",
|
|
767
|
+
"**产出格式**:",
|
|
768
|
+
"```",
|
|
769
|
+
"search_keywords: ['...'],",
|
|
770
|
+
"docs_hits: [",
|
|
771
|
+
" { title: '...', url: '...', summary: '...' },",
|
|
772
|
+
"],",
|
|
773
|
+
"recommended_solutions: ['...'],",
|
|
774
|
+
"```",
|
|
775
|
+
].join("\n"),
|
|
776
|
+
suggestedTools: ["Bash", "Read"],
|
|
777
|
+
output: "相关文档和推荐解决方案",
|
|
778
|
+
},
|
|
779
|
+
{ id: "generate-fix", stepTemplate: "generate-fix", depends: ["check-rendering-layer", "check-build-config", "check-cache", "search-docs"] },
|
|
780
|
+
{ id: "build-verify", stepTemplate: "build-verify", depends: ["generate-fix"] },
|
|
781
|
+
{ id: "approve", stepTemplate: "human-review", depends: ["build-verify"] },
|
|
782
|
+
],
|
|
783
|
+
triggers: [
|
|
784
|
+
{ type: "cli", command: "bug" },
|
|
785
|
+
{ type: "mcp", tool: "diagnose_bug" },
|
|
109
786
|
],
|
|
110
|
-
triggers: [{ type: "cli", command: "bug" }, { type: "mcp", tool: "diagnose_bug" }],
|
|
111
787
|
},
|
|
112
788
|
],
|
|
113
789
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/plugin-nextjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"clean": "rm -rf dist"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@devflow-tools/sdk": "^0.
|
|
20
|
+
"@devflow-tools/sdk": "^0.5.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"typescript": "^5.5.0",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "2d52bb1401b6501a527cac7de0f664c18bf60dcf"
|
|
30
30
|
}
|