@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.
- package/dist/index.js +129 -5
- package/package.json +2 -2
- package/templates/hono/CLAUDE.md +20 -2
- package/templates/hono/docs/architecture/architecture.md +909 -0
- package/templates/hono/docs/commands/git.md +275 -0
- package/templates/hono/docs/deployment/cloudflare.md +527 -190
- package/templates/hono/docs/deployment/docker.md +514 -0
- package/templates/hono/docs/deployment/index.md +179 -214
- package/templates/hono/docs/deployment/railway.md +416 -0
- package/templates/hono/docs/deployment/vercel.md +567 -0
- package/templates/hono/docs/library/ai-sdk/index.md +427 -0
- package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
- package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
- package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
- package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
- package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
- package/templates/hono/docs/library/hono/env-setup.md +458 -0
- package/templates/hono/docs/library/hono/index.md +1 -3
- package/templates/hono/docs/library/pino/index.md +437 -0
- package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
- package/templates/hono/docs/library/prisma/config.md +362 -0
- package/templates/hono/docs/library/prisma/index.md +86 -13
- package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
- package/templates/npx/CLAUDE.md +309 -0
- package/templates/npx/docs/commands/git.md +275 -0
- package/templates/npx/docs/library/commander/index.md +164 -0
- package/templates/npx/docs/library/fs-extra/index.md +171 -0
- package/templates/npx/docs/library/prompts/index.md +253 -0
- package/templates/npx/docs/mcp/index.md +60 -0
- package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
- package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
- package/templates/tanstack-start/CLAUDE.md +43 -5
- package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
- package/templates/tanstack-start/docs/commands/git.md +275 -0
- package/templates/tanstack-start/docs/deployment/cloudflare.md +223 -50
- package/templates/tanstack-start/docs/deployment/index.md +320 -30
- package/templates/tanstack-start/docs/deployment/nitro.md +195 -14
- package/templates/tanstack-start/docs/deployment/railway.md +302 -150
- package/templates/tanstack-start/docs/deployment/vercel.md +345 -75
- package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
- package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
- package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
- package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
- package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
- package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
- package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
- package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
- package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
- package/templates/tanstack-start/docs/library/pino/index.md +320 -0
- package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
- package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
- package/templates/tanstack-start/docs/library/prisma/index.md +3 -5
- package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
- package/templates/tanstack-start/docs/library/prisma/setup.md +0 -7
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
- package/templates/hono/docs/git/index.md +0 -180
- 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**: [
|
|
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는
|
|
6
|
+
TanStack Start는 두 가지 배포 방식을 지원합니다:
|
|
7
|
+
1. **플랫폼 직접 통합**: Cloudflare Vite Plugin, Netlify Plugin 등
|
|
8
|
+
2. **Nitro 배포 레이어**: 다양한 플랫폼에 범용 배포
|
|
9
|
+
|
|
10
|
+
---
|
|
7
11
|
|
|
8
12
|
## 문서 구조
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
58
|
-
|
|
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
|
-
|
|
77
|
-
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
- [
|
|
392
|
+
- [Cloudflare Vite Plugin](https://developers.cloudflare.com/workers/frameworks/framework-guides/tanstack-start/)
|