@kood/claude-code 0.2.5 → 0.3.1

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 (130) hide show
  1. package/dist/index.js +13 -8
  2. package/package.json +1 -1
  3. package/templates/.claude/agents/code-reviewer.md +371 -19
  4. package/templates/.claude/agents/dependency-manager.md +197 -0
  5. package/templates/.claude/agents/deployment-validator.md +136 -0
  6. package/templates/.claude/agents/git-operator.md +147 -0
  7. package/templates/.claude/agents/implementation-executor.md +202 -0
  8. package/templates/.claude/agents/lint-fixer.md +155 -0
  9. package/templates/.claude/agents/refactor-advisor.md +339 -29
  10. package/templates/.claude/commands/agent-creator.md +355 -0
  11. package/templates/.claude/commands/docs-creator.md +404 -163
  12. package/templates/.claude/commands/docs-refactor.md +400 -113
  13. package/templates/.claude/commands/execute.md +357 -185
  14. package/templates/.claude/commands/git-all.md +65 -71
  15. package/templates/.claude/commands/git-session.md +80 -64
  16. package/templates/.claude/commands/git.md +68 -72
  17. package/templates/.claude/commands/lint-fix.md +224 -109
  18. package/templates/.claude/commands/lint-init.md +142 -168
  19. package/templates/.claude/commands/plan.md +300 -84
  20. package/templates/.claude/commands/prd.md +497 -214
  21. package/templates/.claude/commands/pre-deploy.md +242 -0
  22. package/templates/.claude/commands/subagent-creator.md +118 -0
  23. package/templates/.claude/commands/version-update.md +45 -57
  24. package/templates/hono/CLAUDE.md +99 -54
  25. package/templates/hono/docs/guides/conventions.md +352 -0
  26. package/templates/hono/docs/guides/env-setup.md +347 -0
  27. package/templates/hono/docs/guides/getting-started.md +239 -0
  28. package/templates/hono/docs/library/hono/error-handling.md +20 -29
  29. package/templates/hono/docs/library/hono/index.md +25 -52
  30. package/templates/hono/docs/library/hono/middleware.md +16 -75
  31. package/templates/hono/docs/library/hono/rpc.md +7 -35
  32. package/templates/hono/docs/library/hono/validation.md +25 -45
  33. package/templates/hono/docs/library/t3-env/index.md +374 -0
  34. package/templates/npx/CLAUDE.md +165 -65
  35. package/templates/npx/docs/library/commander/index.md +10 -73
  36. package/templates/npx/docs/library/fs-extra/index.md +21 -113
  37. package/templates/npx/docs/library/prompts/index.md +30 -176
  38. package/templates/npx/docs/references/patterns.md +75 -48
  39. package/templates/tanstack-start/CLAUDE.md +101 -77
  40. package/templates/tanstack-start/docs/architecture.md +427 -0
  41. package/templates/tanstack-start/docs/design.md +558 -0
  42. package/templates/tanstack-start/docs/guides/conventions.md +132 -32
  43. package/templates/tanstack-start/docs/guides/env-setup.md +127 -62
  44. package/templates/tanstack-start/docs/guides/getting-started.md +81 -20
  45. package/templates/tanstack-start/docs/guides/hooks.md +241 -36
  46. package/templates/tanstack-start/docs/guides/routes.md +213 -61
  47. package/templates/tanstack-start/docs/guides/services.md +260 -24
  48. package/templates/tanstack-start/docs/library/better-auth/index.md +469 -16
  49. package/templates/tanstack-start/docs/library/t3-env/index.md +307 -0
  50. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -21
  51. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +22 -35
  52. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +7 -24
  53. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +26 -39
  54. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +23 -26
  55. package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +32 -147
  56. package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +25 -167
  57. package/templates/tanstack-start/docs/library/tanstack-router/index.md +39 -74
  58. package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +46 -116
  59. package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +35 -154
  60. package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +32 -171
  61. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +7 -15
  62. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +16 -23
  63. package/templates/tanstack-start/docs/library/zod/complex-types.md +12 -31
  64. package/templates/tanstack-start/docs/library/zod/index.md +18 -35
  65. package/templates/tanstack-start/docs/library/zod/transforms.md +11 -25
  66. package/templates/tanstack-start/docs/library/zod/validation.md +12 -34
  67. package/templates/.claude/agents/debug-detective.md +0 -37
  68. package/templates/.claude/agents/test-writer.md +0 -41
  69. package/templates/.claude/commands/feedback.md +0 -199
  70. package/templates/.claude/commands/ts-fix.md +0 -176
  71. package/templates/.claude/skills/command-creator/LICENSE.txt +0 -202
  72. package/templates/.claude/skills/command-creator/SKILL.md +0 -245
  73. package/templates/.claude/skills/command-creator/scripts/init_command.py +0 -244
  74. package/templates/.claude/skills/command-creator/scripts/package_command.py +0 -125
  75. package/templates/.claude/skills/command-creator/scripts/quick_validate.py +0 -143
  76. package/templates/.claude/skills/frontend-design/SKILL.md +0 -310
  77. package/templates/.claude/skills/frontend-design/references/animation-patterns.md +0 -446
  78. package/templates/.claude/skills/frontend-design/references/colors-2026.md +0 -244
  79. package/templates/.claude/skills/frontend-design/references/typography-2026.md +0 -302
  80. package/templates/.claude/skills/gemini-review/SKILL.md +0 -118
  81. package/templates/.claude/skills/gemini-review/references/checklists.md +0 -129
  82. package/templates/.claude/skills/gemini-review/references/prompt-templates.md +0 -274
  83. package/templates/.claude/skills/skill-creator/LICENSE.txt +0 -202
  84. package/templates/.claude/skills/skill-creator/SKILL.md +0 -184
  85. package/templates/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  86. package/templates/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  87. package/templates/.claude/skills/skill-creator/scripts/quick_validate.py +0 -65
  88. package/templates/hono/docs/library/ai-sdk/index.md +0 -190
  89. package/templates/hono/docs/library/ai-sdk/openrouter.md +0 -111
  90. package/templates/hono/docs/library/ai-sdk/providers.md +0 -102
  91. package/templates/hono/docs/library/ai-sdk/streaming.md +0 -146
  92. package/templates/hono/docs/library/ai-sdk/structured-output.md +0 -161
  93. package/templates/hono/docs/library/ai-sdk/tools.md +0 -144
  94. package/templates/hono/docs/library/drizzle/cloudflare-d1.md +0 -247
  95. package/templates/hono/docs/library/drizzle/config.md +0 -167
  96. package/templates/hono/docs/library/drizzle/index.md +0 -259
  97. package/templates/hono/docs/library/hono/env-setup.md +0 -169
  98. package/templates/hono/docs/library/pino/index.md +0 -146
  99. package/templates/tanstack-start/docs/architecture/architecture.md +0 -243
  100. package/templates/tanstack-start/docs/deployment/cloudflare.md +0 -132
  101. package/templates/tanstack-start/docs/deployment/index.md +0 -163
  102. package/templates/tanstack-start/docs/deployment/nitro.md +0 -110
  103. package/templates/tanstack-start/docs/deployment/railway.md +0 -147
  104. package/templates/tanstack-start/docs/deployment/vercel.md +0 -135
  105. package/templates/tanstack-start/docs/design/components.md +0 -175
  106. package/templates/tanstack-start/docs/design/index.md +0 -151
  107. package/templates/tanstack-start/docs/design/safe-area.md +0 -118
  108. package/templates/tanstack-start/docs/design/tailwind-setup.md +0 -156
  109. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +0 -472
  110. package/templates/tanstack-start/docs/library/ai-sdk/index.md +0 -264
  111. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +0 -371
  112. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +0 -403
  113. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +0 -320
  114. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +0 -454
  115. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +0 -473
  116. package/templates/tanstack-start/docs/library/better-auth/2fa.md +0 -48
  117. package/templates/tanstack-start/docs/library/better-auth/advanced.md +0 -55
  118. package/templates/tanstack-start/docs/library/better-auth/plugins.md +0 -34
  119. package/templates/tanstack-start/docs/library/better-auth/session.md +0 -47
  120. package/templates/tanstack-start/docs/library/better-auth/setup.md +0 -41
  121. package/templates/tanstack-start/docs/library/drizzle/cloudflare-d1.md +0 -147
  122. package/templates/tanstack-start/docs/library/drizzle/config.md +0 -118
  123. package/templates/tanstack-start/docs/library/drizzle/crud.md +0 -205
  124. package/templates/tanstack-start/docs/library/drizzle/index.md +0 -79
  125. package/templates/tanstack-start/docs/library/drizzle/relations.md +0 -202
  126. package/templates/tanstack-start/docs/library/drizzle/schema.md +0 -154
  127. package/templates/tanstack-start/docs/library/drizzle/setup.md +0 -96
  128. package/templates/tanstack-start/docs/library/drizzle/transactions.md +0 -127
  129. package/templates/tanstack-start/docs/library/pino/index.md +0 -320
  130. /package/templates/hono/docs/{architecture/architecture.md → architecture.md} +0 -0
@@ -1,163 +0,0 @@
1
- # 배포 (Deployment)
2
-
3
- > TanStack Start + Nitro v3
4
-
5
- @nitro.md
6
- @vercel.md
7
- @cloudflare.md
8
- @railway.md
9
-
10
- ---
11
-
12
- ## 배포 방식
13
-
14
- | 방식 | 설정 | 지원 |
15
- |------|------|------|
16
- | 플랫폼 직접 통합 | Vite 플러그인 | Cloudflare, Netlify |
17
- | Nitro 배포 레이어 | nitro/vite | 모든 Nitro preset |
18
-
19
- ### 플랫폼별 권장
20
-
21
- | 플랫폼 | 방식 | 설정 |
22
- |--------|------|------|
23
- | Cloudflare Workers | 직접 통합 | `@cloudflare/vite-plugin` |
24
- | Cloudflare Pages | Nitro | `cloudflare_pages` |
25
- | Vercel | Nitro | `vercel` |
26
- | Railway | Nitro | `node` |
27
- | Netlify | 직접 통합 | `@netlify/vite-plugin-tanstack-start` |
28
-
29
- ---
30
-
31
- ## Cloudflare Workers (직접 통합)
32
-
33
- ```bash
34
- yarn add -D @cloudflare/vite-plugin wrangler
35
- ```
36
-
37
- ```typescript
38
- // vite.config.ts
39
- import { cloudflare } from '@cloudflare/vite-plugin'
40
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
41
-
42
- export default defineConfig({
43
- plugins: [
44
- cloudflare({ viteEnvironment: { name: 'ssr' } }),
45
- tanstackStart(),
46
- viteReact(),
47
- ],
48
- })
49
- ```
50
-
51
- ```jsonc
52
- // wrangler.jsonc
53
- {
54
- "name": "my-app",
55
- "compatibility_date": "2024-09-19",
56
- "compatibility_flags": ["nodejs_compat"],
57
- "main": "@tanstack/react-start/server-entry"
58
- }
59
- ```
60
-
61
- ```bash
62
- yarn build && wrangler deploy
63
- ```
64
-
65
- ---
66
-
67
- ## Nitro 배포 레이어
68
-
69
- ```bash
70
- yarn add nitro@3
71
- ```
72
-
73
- ```typescript
74
- // vite.config.ts
75
- import { nitro } from 'nitro/vite'
76
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
77
-
78
- export default defineConfig({
79
- plugins: [tanstackStart(), nitro(), viteReact()],
80
- })
81
- ```
82
-
83
- ```typescript
84
- // nitro.config.ts
85
- import { defineNitroConfig } from 'nitro/config'
86
-
87
- export default defineNitroConfig({
88
- preset: 'vercel', // vercel, cloudflare_pages, node
89
- compatibilityDate: '2024-09-19',
90
- })
91
- ```
92
-
93
- ```bash
94
- yarn build
95
- # 또는
96
- NITRO_PRESET=vercel yarn build
97
- ```
98
-
99
- ---
100
-
101
- ## ⚠️ SSR 이슈 해결
102
-
103
- ### node:async_hooks 오류
104
-
105
- ```typescript
106
- // vite.config.ts
107
- export default defineConfig({
108
- optimizeDeps: { exclude: ['node:async_hooks'] },
109
- ssr: { external: ['node:async_hooks'] },
110
- })
111
- ```
112
-
113
- ### Prisma 브라우저 번들링
114
-
115
- ```typescript
116
- resolve: {
117
- alias: {
118
- '.prisma/client/index-browser': './node_modules/.prisma/client/index-browser.js',
119
- },
120
- },
121
- ```
122
-
123
- ### SSR Context Loss (Clerk, MUI)
124
-
125
- ```typescript
126
- ssr: {
127
- noExternal: [
128
- '@clerk/tanstack-react-start',
129
- '@mui/material', '@mui/utils', '@mui/styled-engine',
130
- ],
131
- },
132
- ```
133
-
134
- ### 종합 설정
135
-
136
- ```typescript
137
- export default defineConfig({
138
- plugins: [tsConfigPaths(), tanstackStart(), viteReact()],
139
- resolve: {
140
- alias: { '.prisma/client/index-browser': './node_modules/.prisma/client/index-browser.js' },
141
- },
142
- optimizeDeps: { exclude: ['node:async_hooks'] },
143
- ssr: {
144
- external: ['node:async_hooks'],
145
- noExternal: ['@clerk/tanstack-react-start', '@mui/material'],
146
- },
147
- })
148
- ```
149
-
150
- ---
151
-
152
- ## 스크립트
153
-
154
- ```json
155
- {
156
- "scripts": {
157
- "dev": "vite dev",
158
- "build": "vite build && tsc --noEmit",
159
- "start": "node .output/server/index.mjs",
160
- "deploy": "yarn build && wrangler deploy"
161
- }
162
- }
163
- ```
@@ -1,110 +0,0 @@
1
- # Nitro v3 배포 레이어
2
-
3
- > Nitro 3.x
4
-
5
- ## Quick Reference
6
-
7
- ```typescript
8
- // nitro.config.ts
9
- import { defineNitroConfig } from 'nitro/config'
10
-
11
- export default defineNitroConfig({
12
- preset: 'vercel',
13
- compatibilityDate: '2024-09-19', // v3 필수
14
- })
15
- ```
16
-
17
- ```bash
18
- yarn add nitro@3
19
- yarn build
20
- ```
21
-
22
- ---
23
-
24
- ## Vite 통합
25
-
26
- ```typescript
27
- // vite.config.ts
28
- import { nitro } from 'nitro/vite'
29
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
30
-
31
- export default defineConfig({
32
- plugins: [
33
- tanstackStart(),
34
- nitro({ preset: 'vercel' }), // preset 직접 지정 가능
35
- viteReact(),
36
- ],
37
- })
38
- ```
39
-
40
- ---
41
-
42
- ## Preset 목록
43
-
44
- ### 서버리스/Edge
45
-
46
- | Preset | 플랫폼 |
47
- |--------|--------|
48
- | `vercel` | Vercel Functions |
49
- | `vercel-edge` | Vercel Edge Functions |
50
- | `cloudflare_pages` | Cloudflare Pages |
51
- | `cloudflare_module` | Cloudflare Workers |
52
- | `netlify` | Netlify Functions |
53
- | `aws_lambda` | AWS Lambda |
54
-
55
- ### Node.js 서버
56
-
57
- | Preset | 플랫폼 |
58
- |--------|--------|
59
- | `node` | 범용 (Railway, Docker) |
60
- | `node-cluster` | 클러스터 모드 |
61
- | `bun` | Bun 런타임 |
62
- | `deno` | Deno 런타임 |
63
-
64
- ---
65
-
66
- ## 설정 예시
67
-
68
- ```typescript
69
- // nitro.config.ts
70
- import { defineNitroConfig } from 'nitro/config'
71
-
72
- export default defineNitroConfig({
73
- preset: 'vercel',
74
- compatibilityDate: '2024-09-19',
75
- output: { dir: '.output' },
76
- minify: true,
77
-
78
- // 외부 패키지 처리
79
- externals: ['pg', 'mysql2', 'sharp'],
80
-
81
- // Cloudflare Node.js 호환성
82
- cloudflare: { nodeCompat: true },
83
-
84
- // 라우트 규칙
85
- routeRules: {
86
- '/': { prerender: true },
87
- '/products/**': { isr: { expiration: 60 } },
88
- '/api/**': { cors: true },
89
- },
90
- })
91
- ```
92
-
93
- ---
94
-
95
- ## 빌드
96
-
97
- ```bash
98
- yarn build
99
- NITRO_PRESET=vercel yarn build
100
- DEBUG=nitro:* yarn build # 상세 로그
101
- ```
102
-
103
- ## 출력 구조
104
-
105
- ```
106
- .output/
107
- ├── server/index.mjs # 서버 엔트리
108
- ├── public/ # 정적 파일
109
- └── nitro.json
110
- ```
@@ -1,147 +0,0 @@
1
- # Railway 배포
2
-
3
- ## Quick Reference
4
-
5
- ```typescript
6
- // nitro.config.ts
7
- import { defineNitroConfig } from 'nitro/config'
8
-
9
- export default defineNitroConfig({
10
- preset: 'node',
11
- compatibilityDate: '2024-09-19',
12
- })
13
- ```
14
-
15
- ```json
16
- // package.json
17
- {
18
- "scripts": {
19
- "build": "vite build && tsc --noEmit",
20
- "start": "node .output/server/index.mjs"
21
- },
22
- "engines": { "node": ">=20.0.0" }
23
- }
24
- ```
25
-
26
- ```bash
27
- railway login && railway init && railway up
28
- ```
29
-
30
- ---
31
-
32
- ## Railway 설정
33
-
34
- ```json
35
- // railway.json
36
- {
37
- "build": { "builder": "NIXPACKS", "buildCommand": "yarn install && yarn build" },
38
- "deploy": {
39
- "startCommand": "node .output/server/index.mjs",
40
- "healthcheckPath": "/health",
41
- "restartPolicyType": "ON_FAILURE"
42
- }
43
- }
44
- ```
45
-
46
- ---
47
-
48
- ## 배포 방법
49
-
50
- ### GitHub 연동 (권장)
51
- 1. Railway 대시보드 → "Deploy from GitHub repo"
52
- 2. 자동으로 `build`, `start` 스크립트 사용
53
-
54
- ### CLI
55
- ```bash
56
- npm install -g @railway/cli
57
- railway login
58
- railway init
59
- railway up
60
- railway variables set DATABASE_URL="postgresql://..."
61
- ```
62
-
63
- ### Docker
64
- ```dockerfile
65
- FROM node:20-alpine AS builder
66
- WORKDIR /app
67
- COPY package.json yarn.lock ./
68
- RUN yarn install --frozen-lockfile
69
- COPY . .
70
- RUN yarn build
71
-
72
- FROM node:20-alpine
73
- WORKDIR /app
74
- COPY --from=builder /app/.output ./.output
75
- ENV PORT=3000 NODE_ENV=production
76
- CMD ["node", ".output/server/index.mjs"]
77
- ```
78
-
79
- ---
80
-
81
- ## 환경변수
82
-
83
- | 변수 | 설명 |
84
- |------|------|
85
- | `PORT` | 서버 포트 (자동) |
86
- | `RAILWAY_ENVIRONMENT` | production/staging |
87
- | `RAILWAY_SERVICE_NAME` | 서비스 이름 |
88
-
89
- ---
90
-
91
- ## 데이터베이스
92
-
93
- ```bash
94
- # Railway 대시보드: New → Database → PostgreSQL/Redis
95
- # DATABASE_URL, REDIS_URL 자동 연결
96
- ```
97
-
98
- ---
99
-
100
- ## 헬스체크
101
-
102
- ```typescript
103
- // server/api/health.ts
104
- export default defineHandler(() => ({
105
- status: 'ok',
106
- timestamp: new Date().toISOString(),
107
- }))
108
- ```
109
-
110
- ---
111
-
112
- ## CI/CD
113
-
114
- ```yaml
115
- # .github/workflows/railway.yml
116
- - run: npm install -g @railway/cli
117
- - run: railway up
118
- env:
119
- RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
120
- ```
121
-
122
- ---
123
-
124
- ## 모니터링
125
-
126
- ```bash
127
- railway logs # 로그 확인
128
- railway logs -f # 실시간 로그
129
- railway status # 서비스 상태
130
- railway variables # 환경변수 확인
131
- ```
132
-
133
- ---
134
-
135
- ## 트러블슈팅
136
-
137
- | 문제 | 해결 |
138
- |------|------|
139
- | 빌드 실패 | `yarn.lock` 커밋 확인 |
140
- | 포트 바인딩 | `process.env.PORT` 사용 |
141
- | 메모리 초과 | 리소스 제한 증가 |
142
- | 헬스체크 실패 | `/health` 엔드포인트 추가 |
143
-
144
- ```typescript
145
- // ❌ const port = 3000
146
- // ✅ const port = process.env.PORT || 3000
147
- ```
@@ -1,135 +0,0 @@
1
- # Vercel 배포
2
-
3
- ## Quick Reference
4
-
5
- ```typescript
6
- // nitro.config.ts
7
- import { defineNitroConfig } from 'nitro/config'
8
-
9
- export default defineNitroConfig({
10
- preset: 'vercel',
11
- compatibilityDate: '2024-09-19',
12
- })
13
- ```
14
-
15
- ```json
16
- // vercel.json
17
- {
18
- "buildCommand": "yarn build",
19
- "outputDirectory": ".vercel/output"
20
- }
21
- ```
22
-
23
- ```bash
24
- vercel login && vercel
25
- ```
26
-
27
- ---
28
-
29
- ## Nitro 설정
30
-
31
- ```typescript
32
- // Edge Functions
33
- preset: 'vercel-edge'
34
-
35
- // Bun 런타임
36
- vercel: { functions: { runtime: 'bun@1' } }
37
- ```
38
-
39
- ---
40
-
41
- ## vercel.json
42
-
43
- ```json
44
- {
45
- "buildCommand": "yarn build",
46
- "outputDirectory": ".vercel/output",
47
- "framework": null,
48
- "functions": {
49
- "api/**/*.ts": { "memory": 1024, "maxDuration": 30 }
50
- }
51
- }
52
- ```
53
-
54
- ---
55
-
56
- ## 배포 방법
57
-
58
- ### GitHub 연동
59
- 1. Vercel 대시보드 → GitHub 저장소 연결
60
- 2. Build: `yarn build`, Output: `.vercel/output`
61
-
62
- ### CLI
63
- ```bash
64
- npm install -g vercel
65
- vercel login
66
- vercel # 프리뷰
67
- vercel --prod # 프로덕션
68
- ```
69
-
70
- ---
71
-
72
- ## ISR
73
-
74
- ```typescript
75
- // nitro.config.ts
76
- routeRules: {
77
- '/products/**': { isr: { expiration: 60 } }, // 60초 재검증
78
- '/api/user/**': { isr: false }, // 캐시 안함
79
- }
80
- ```
81
-
82
- ---
83
-
84
- ## 환경변수
85
-
86
- | 변수 | 설명 |
87
- |------|------|
88
- | `VERCEL` | Vercel 환경 ("1") |
89
- | `VERCEL_ENV` | production/preview/development |
90
- | `VERCEL_URL` | 배포 URL |
91
-
92
- ```bash
93
- vercel env add DATABASE_URL
94
- vercel env pull .env.local
95
- ```
96
-
97
- ---
98
-
99
- ## CI/CD
100
-
101
- ```yaml
102
- # .github/workflows/vercel.yml
103
- - uses: amondnet/vercel-action@v25
104
- with:
105
- vercel-token: ${{ secrets.VERCEL_TOKEN }}
106
- vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
107
- vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
108
- vercel-args: ${{ github.ref == 'refs/heads/main' && '--prod' || '' }}
109
- ```
110
-
111
- ---
112
-
113
- ## 최적화
114
-
115
- ```typescript
116
- // Cold Start 최소화
117
- minify: true
118
- externals: ['sharp', 'prisma', '@prisma/client']
119
- ```
120
-
121
- ---
122
-
123
- ## 트러블슈팅
124
-
125
- | 문제 | 해결 |
126
- |------|------|
127
- | Timeout | `maxDuration` 증가 |
128
- | Edge 호환성 | Edge API로 변경 |
129
- | 환경변수 누락 | 대시보드에서 설정 |
130
-
131
- ```bash
132
- vercel dev # 로컬 시뮬레이션
133
- vercel logs # 로그 확인
134
- vercel inspect # 함수 상태
135
- ```