@kood/claude-code 0.1.2 → 0.1.4

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.
Files changed (63) hide show
  1. package/dist/index.js +129 -5
  2. package/package.json +2 -2
  3. package/templates/hono/CLAUDE.md +20 -2
  4. package/templates/hono/docs/architecture/architecture.md +909 -0
  5. package/templates/hono/docs/commands/git.md +275 -0
  6. package/templates/hono/docs/deployment/cloudflare.md +527 -190
  7. package/templates/hono/docs/deployment/docker.md +514 -0
  8. package/templates/hono/docs/deployment/index.md +179 -214
  9. package/templates/hono/docs/deployment/railway.md +416 -0
  10. package/templates/hono/docs/deployment/vercel.md +567 -0
  11. package/templates/hono/docs/library/ai-sdk/index.md +427 -0
  12. package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
  13. package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
  14. package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
  15. package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
  16. package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
  17. package/templates/hono/docs/library/hono/env-setup.md +458 -0
  18. package/templates/hono/docs/library/hono/index.md +1 -3
  19. package/templates/hono/docs/library/pino/index.md +437 -0
  20. package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
  21. package/templates/hono/docs/library/prisma/config.md +362 -0
  22. package/templates/hono/docs/library/prisma/index.md +86 -13
  23. package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
  24. package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
  25. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
  26. package/templates/npx/CLAUDE.md +309 -0
  27. package/templates/npx/docs/commands/git.md +275 -0
  28. package/templates/npx/docs/library/commander/index.md +164 -0
  29. package/templates/npx/docs/library/fs-extra/index.md +171 -0
  30. package/templates/npx/docs/library/prompts/index.md +253 -0
  31. package/templates/npx/docs/mcp/index.md +60 -0
  32. package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
  33. package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
  34. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
  35. package/templates/tanstack-start/CLAUDE.md +43 -5
  36. package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
  37. package/templates/tanstack-start/docs/commands/git.md +275 -0
  38. package/templates/tanstack-start/docs/deployment/cloudflare.md +223 -50
  39. package/templates/tanstack-start/docs/deployment/index.md +320 -30
  40. package/templates/tanstack-start/docs/deployment/nitro.md +195 -14
  41. package/templates/tanstack-start/docs/deployment/railway.md +302 -150
  42. package/templates/tanstack-start/docs/deployment/vercel.md +345 -75
  43. package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
  44. package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
  45. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
  46. package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
  47. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
  48. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
  49. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
  50. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
  51. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
  52. package/templates/tanstack-start/docs/library/pino/index.md +320 -0
  53. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
  54. package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
  55. package/templates/tanstack-start/docs/library/prisma/index.md +3 -5
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/prisma/setup.md +0 -7
  58. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  59. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  61. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  62. package/templates/hono/docs/git/index.md +0 -180
  63. package/templates/tanstack-start/docs/git/index.md +0 -203
@@ -1,32 +1,106 @@
1
1
  # 배포 (Deployment)
2
2
 
3
- > **Framework**: TanStack Start + Nitro
4
- > **Source**: [Nitro Deployment](https://nitro.build/deploy), [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
3
+ > **Framework**: TanStack Start + Nitro v3
4
+ > **Source**: [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
5
5
 
6
- TanStack Start는 Nitro를 배포 레이어로 사용하여 다양한 플랫폼에 배포할 수 있습니다.
6
+ TanStack Start는 가지 배포 방식을 지원합니다:
7
+ 1. **플랫폼 직접 통합**: Cloudflare Vite Plugin, Netlify Plugin 등
8
+ 2. **Nitro 배포 레이어**: 다양한 플랫폼에 범용 배포
9
+
10
+ ---
7
11
 
8
12
  ## 문서 구조
9
13
 
10
- - [Nitro 설정](./nitro.md) - Nitro 배포 레이어 기본 설정
11
- - [Vercel](./vercel.md) - Vercel 배포 가이드
12
- - [Cloudflare](./cloudflare.md) - Cloudflare Workers/Pages 배포
13
- - [Railway](./railway.md) - Railway 배포 가이드
14
+ | 문서 | 내용 |
15
+ |------|------|
16
+ | [Nitro 설정](./nitro.md) | Nitro v3 배포 레이어 기본 설정 |
17
+ | [Vercel](./vercel.md) | Vercel 서버리스 배포 |
18
+ | [Cloudflare](./cloudflare.md) | Cloudflare Workers/Pages 배포 |
19
+ | [Railway](./railway.md) | Railway Node.js 서버 배포 |
20
+
21
+ ---
22
+
23
+ ## 배포 방식 비교
24
+
25
+ ### 플랫폼 직접 통합 vs Nitro
26
+
27
+ | 구분 | 플랫폼 직접 통합 | Nitro 배포 레이어 |
28
+ |------|------------------|-------------------|
29
+ | 설정 | 플랫폼별 Vite 플러그인 | `nitro/vite` 플러그인 |
30
+ | 지원 | Cloudflare, Netlify | 모든 Nitro preset |
31
+ | 특징 | 플랫폼 최적화 | 범용성, 이식성 |
32
+ | 권장 | Cloudflare Workers | Vercel, Railway 등 |
33
+
34
+ ### 플랫폼별 권장 방식
35
+
36
+ | 플랫폼 | 권장 방식 | Preset/Plugin |
37
+ |--------|-----------|---------------|
38
+ | **Cloudflare Workers** | 직접 통합 | `@cloudflare/vite-plugin` |
39
+ | **Cloudflare Pages** | Nitro | `cloudflare_pages` |
40
+ | **Vercel** | Nitro | `vercel` |
41
+ | **Railway** | Nitro | `node` |
42
+ | **Netlify** | 직접 통합 | `@netlify/vite-plugin-tanstack-start` |
43
+
44
+ ---
45
+
46
+ ## 방식 1: Cloudflare 직접 통합 (권장)
47
+
48
+ Cloudflare Workers 배포 시 공식 권장 방식입니다.
49
+
50
+ ### 1. 패키지 설치
51
+
52
+ ```bash
53
+ yarn add -D @cloudflare/vite-plugin wrangler
54
+ ```
55
+
56
+ ### 2. Vite 설정
57
+
58
+ ```typescript
59
+ // vite.config.ts
60
+ import { defineConfig } from 'vite'
61
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
62
+ import { cloudflare } from '@cloudflare/vite-plugin'
63
+ import viteReact from '@vitejs/plugin-react'
64
+
65
+ export default defineConfig({
66
+ plugins: [
67
+ cloudflare({ viteEnvironment: { name: 'ssr' } }),
68
+ tanstackStart(),
69
+ viteReact(),
70
+ ],
71
+ })
72
+ ```
73
+
74
+ ### 3. Wrangler 설정
75
+
76
+ ```jsonc
77
+ // wrangler.jsonc
78
+ {
79
+ "$schema": "node_modules/wrangler/config-schema.json",
80
+ "name": "my-tanstack-app",
81
+ "compatibility_date": "2024-09-19",
82
+ "compatibility_flags": ["nodejs_compat"],
83
+ "main": "@tanstack/react-start/server-entry"
84
+ }
85
+ ```
86
+
87
+ ### 4. 배포
88
+
89
+ ```bash
90
+ # 빌드 및 배포
91
+ yarn build && wrangler deploy
92
+ ```
14
93
 
15
- ## 배포 옵션 비교
94
+ ---
16
95
 
17
- | 플랫폼 | Preset | Edge 지원 | 특징 |
18
- |--------|--------|-----------|------|
19
- | Vercel | `vercel` | ✅ | ISR, 자동 배포, Bun 런타임 |
20
- | Cloudflare Pages | `cloudflare_pages` | ✅ | 글로벌 CDN, Workers 통합 |
21
- | Cloudflare Workers | `cloudflare_module` | ✅ | 서버리스 컴퓨팅, KV 스토리지 |
22
- | Railway | `node-server` | ❌ | Docker 지원, 간편한 설정 |
96
+ ## 방식 2: Nitro 배포 레이어
23
97
 
24
- ## 빠른 시작
98
+ 다양한 플랫폼에 범용으로 배포할 수 있습니다.
25
99
 
26
- ### 1. Nitro 플러그인 설치
100
+ ### 1. Nitro 설치
27
101
 
28
102
  ```bash
29
- yarn add nitro
103
+ yarn add nitro@3
30
104
  ```
31
105
 
32
106
  ### 2. Vite 설정
@@ -34,15 +108,15 @@ yarn add nitro
34
108
  ```typescript
35
109
  // vite.config.ts
36
110
  import { defineConfig } from 'vite'
37
- import react from '@vitejs/plugin-react'
38
111
  import { tanstackStart } from '@tanstack/react-start/plugin/vite'
39
112
  import { nitro } from 'nitro/vite'
113
+ import viteReact from '@vitejs/plugin-react'
40
114
 
41
115
  export default defineConfig({
42
116
  plugins: [
43
117
  tanstackStart(),
44
118
  nitro(),
45
- react(),
119
+ viteReact(),
46
120
  ],
47
121
  })
48
122
  ```
@@ -54,8 +128,10 @@ export default defineConfig({
54
128
  import { defineNitroConfig } from 'nitro/config'
55
129
 
56
130
  export default defineNitroConfig({
57
- preset: 'vercel', // 또는 cloudflare_pages, node-server 등
58
- // Nitro v3 필수: Cloudflare Static Assets 지원을 위해 2024-09-19 이상 필요
131
+ // 플랫폼별 preset 선택
132
+ preset: 'vercel', // vercel, cloudflare_pages, node
133
+
134
+ // Nitro v3 필수 설정
59
135
  compatibilityDate: '2024-09-19',
60
136
  })
61
137
  ```
@@ -70,25 +146,236 @@ yarn build
70
146
  NITRO_PRESET=vercel yarn build
71
147
  ```
72
148
 
149
+ ---
150
+
73
151
  ## Preset 선택 가이드
74
152
 
75
153
  ### Edge 런타임이 필요한 경우
76
- - **Vercel**: `vercel` (Edge Functions 자동 지원)
77
- - **Cloudflare**: `cloudflare_pages` 또는 `cloudflare_module`
154
+
155
+ | 플랫폼 | 방식 | 설정 |
156
+ |--------|------|------|
157
+ | Cloudflare Workers | 직접 통합 | `@cloudflare/vite-plugin` |
158
+ | Cloudflare Pages | Nitro | `preset: 'cloudflare_pages'` |
159
+ | Vercel Edge | Nitro | `preset: 'vercel'` |
78
160
 
79
161
  ### Node.js 서버가 필요한 경우
80
- - **Railway**: `node-server`
81
- - **기타 Node.js 호스팅**: `node-server`
82
162
 
83
- ### 정적 사이트 생성 (SSG)
84
- - **정적 호스팅**: `static`
163
+ | 플랫폼 | 방식 | 설정 |
164
+ |--------|------|------|
165
+ | Railway | Nitro | `preset: 'node'` |
166
+ | Docker | Nitro | `preset: 'node'` |
167
+ | 기타 VPS | Nitro | `preset: 'node'` |
168
+
169
+ ### Bun 런타임
170
+
171
+ ```typescript
172
+ // vite.config.ts
173
+ import { defineConfig } from 'vite'
174
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
175
+ import { nitro } from 'nitro/vite'
176
+ import viteReact from '@vitejs/plugin-react'
177
+
178
+ export default defineConfig({
179
+ plugins: [
180
+ tanstackStart(),
181
+ nitro({ preset: 'bun' }),
182
+ viteReact(),
183
+ ],
184
+ })
185
+ ```
186
+
187
+ ---
188
+
189
+ ## package.json 스크립트
190
+
191
+ ```json
192
+ {
193
+ "scripts": {
194
+ "dev": "vite dev",
195
+ "build": "vite build && tsc --noEmit",
196
+ "start": "node .output/server/index.mjs",
197
+ "preview": "vite preview",
198
+ "deploy": "yarn build && wrangler deploy"
199
+ }
200
+ }
201
+ ```
202
+
203
+ ---
204
+
205
+ ## ⚠️ 유의사항
206
+
207
+ TanStack Start의 SSR 환경에서 발생할 수 있는 주요 이슈와 해결 방법입니다.
208
+
209
+ ### node:async_hooks 오류
210
+
211
+ TanStack Start의 AsyncLocalStorage 관련 모듈이 클라이언트 번들에 포함되면 다음 오류가 발생합니다:
212
+
213
+ ```
214
+ Module 'node:async_hooks' has been externalized for browser
215
+ ```
216
+
217
+ **해결 방법**: `vite.config.ts`에 다음 설정을 추가합니다.
218
+
219
+ ```typescript
220
+ // vite.config.ts
221
+ import { defineConfig } from 'vite'
222
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
223
+ import viteReact from '@vitejs/plugin-react'
224
+
225
+ export default defineConfig({
226
+ plugins: [
227
+ tanstackStart(),
228
+ viteReact(),
229
+ ],
230
+ optimizeDeps: {
231
+ exclude: ['node:async_hooks'],
232
+ },
233
+ ssr: {
234
+ external: ['node:async_hooks'],
235
+ },
236
+ })
237
+ ```
238
+
239
+ ---
240
+
241
+ ### Prisma 사용 시 설정
242
+
243
+ TanStack Start에서 Prisma를 사용하는 경우, 브라우저 번들링 시 모듈 해석 오류가 발생할 수 있습니다.
244
+
245
+ **해결 방법**: `vite.config.ts`에 alias 설정을 추가합니다.
246
+
247
+ ```typescript
248
+ // vite.config.ts
249
+ import { defineConfig } from 'vite'
250
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
251
+ import viteReact from '@vitejs/plugin-react'
252
+
253
+ export default defineConfig({
254
+ plugins: [
255
+ tanstackStart(),
256
+ viteReact(),
257
+ ],
258
+ resolve: {
259
+ alias: {
260
+ '.prisma/client/index-browser':
261
+ './node_modules/.prisma/client/index-browser.js',
262
+ },
263
+ },
264
+ })
265
+ ```
266
+
267
+ ---
268
+
269
+ ### SSR Context Loss (Clerk, 외부 패키지)
270
+
271
+ Clerk 등 AsyncLocalStorage를 사용하는 외부 패키지에서 SSR context 손실 오류가 발생할 수 있습니다:
272
+
273
+ ```
274
+ Error: No HTTPEvent found in AsyncLocalStorage
275
+ ```
276
+
277
+ **해결 방법**: 해당 패키지를 `ssr.noExternal`에 추가합니다.
278
+
279
+ ```typescript
280
+ // vite.config.ts
281
+ export default defineConfig({
282
+ plugins: [tanstackStart(), viteReact()],
283
+ ssr: {
284
+ noExternal: ['@clerk/tanstack-react-start'],
285
+ },
286
+ })
287
+ ```
288
+
289
+ ---
290
+
291
+ ### MUI (Material UI) SSR 설정
292
+
293
+ MUI 사용 시 SSR 환경에서 스타일 또는 모듈 오류가 발생할 수 있습니다.
294
+
295
+ **해결 방법**: MUI 관련 패키지를 `ssr.noExternal`에 추가합니다.
296
+
297
+ ```typescript
298
+ // vite.config.ts
299
+ export default defineConfig({
300
+ plugins: [tanstackStart(), viteReact()],
301
+ ssr: {
302
+ noExternal: [
303
+ '@mui/material',
304
+ '@mui/utils',
305
+ '@mui/styled-engine',
306
+ '@mui/icons-material',
307
+ '@mui/system',
308
+ ],
309
+ },
310
+ })
311
+ ```
312
+
313
+ ---
314
+
315
+ ### 종합 설정 예시
316
+
317
+ 여러 패키지를 함께 사용하는 경우의 통합 설정:
318
+
319
+ ```typescript
320
+ // vite.config.ts
321
+ import { defineConfig } from 'vite'
322
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
323
+ import tsConfigPaths from 'vite-tsconfig-paths'
324
+ import viteReact from '@vitejs/plugin-react'
325
+
326
+ export default defineConfig({
327
+ server: {
328
+ port: 3000,
329
+ },
330
+ plugins: [
331
+ tsConfigPaths(),
332
+ tanstackStart(),
333
+ viteReact(),
334
+ ],
335
+ // Prisma 사용 시
336
+ resolve: {
337
+ alias: {
338
+ '.prisma/client/index-browser':
339
+ './node_modules/.prisma/client/index-browser.js',
340
+ },
341
+ },
342
+ // Node.js 내장 모듈 처리
343
+ optimizeDeps: {
344
+ exclude: ['node:async_hooks'],
345
+ },
346
+ // SSR 설정
347
+ ssr: {
348
+ external: ['node:async_hooks'],
349
+ noExternal: [
350
+ // Clerk 사용 시
351
+ '@clerk/tanstack-react-start',
352
+ // MUI 사용 시
353
+ '@mui/material',
354
+ '@mui/utils',
355
+ '@mui/styled-engine',
356
+ '@mui/icons-material',
357
+ '@mui/system',
358
+ ],
359
+ },
360
+ ```
361
+
362
+ ---
363
+
364
+ ### 참고 자료
365
+
366
+ - [TanStack Start SSR Context Loss Issue](https://github.com/TanStack/router/issues/4409)
367
+ - [node:async_hooks AsyncLocalStorage Bug](https://github.com/TanStack/router/issues/4729)
368
+ - [TanStack Start Material UI Example](https://tanstack.com/start/latest/docs/framework/react/examples/start-material-ui)
369
+ - [TanStack Start Clerk Example](https://tanstack.com/start/latest/docs/framework/react/examples/start-clerk-basic)
370
+
371
+ ---
85
372
 
86
373
  ## 환경변수
87
374
 
88
- 모든 플랫폼에서 공통으로 사용하는 환경변수:
375
+ 모든 플랫폼에서 공통으로 사용:
89
376
 
90
377
  ```bash
91
- # 빌드 시 preset 지정
378
+ # 빌드 시 preset 지정 (Nitro 사용 시)
92
379
  NITRO_PRESET=vercel
93
380
 
94
381
  # 런타임 환경변수
@@ -96,7 +383,10 @@ DATABASE_URL=postgresql://...
96
383
  API_SECRET=your-secret-key
97
384
  ```
98
385
 
386
+ ---
387
+
99
388
  ## 참고 자료
100
389
 
390
+ - [TanStack Start Hosting 공식 문서](https://tanstack.com/start/latest/docs/framework/react/hosting)
101
391
  - [Nitro 공식 문서](https://nitro.build)
102
- - [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
392
+ - [Cloudflare Vite Plugin](https://developers.cloudflare.com/workers/frameworks/framework-guides/tanstack-start/)