@daawoonkim/create-arch-app 0.1.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/LICENSE +21 -0
- package/README.md +267 -0
- package/TESTING.md +224 -0
- package/bin/cli.js +4 -0
- package/create-arch-app_mvp_faa8b53b.plan.md +454 -0
- package/dist/commands/create.d.ts +2 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +63 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/generators/index.d.ts +3 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +221 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/nextjs.d.ts +3 -0
- package/dist/generators/nextjs.d.ts.map +1 -0
- package/dist/generators/nextjs.js +253 -0
- package/dist/generators/nextjs.js.map +1 -0
- package/dist/generators/react.d.ts +3 -0
- package/dist/generators/react.d.ts.map +1 -0
- package/dist/generators/react.js +210 -0
- package/dist/generators/react.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/projectSetup.d.ts +3 -0
- package/dist/prompts/projectSetup.d.ts.map +1 -0
- package/dist/prompts/projectSetup.js +110 -0
- package/dist/prompts/projectSetup.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/dependencies.d.ts +5 -0
- package/dist/utils/dependencies.d.ts.map +1 -0
- package/dist/utils/dependencies.js +90 -0
- package/dist/utils/dependencies.js.map +1 -0
- package/dist/utils/fileSystem.d.ts +5 -0
- package/dist/utils/fileSystem.d.ts.map +1 -0
- package/dist/utils/fileSystem.js +23 -0
- package/dist/utils/fileSystem.js.map +1 -0
- package/package.json +51 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 create-arch-app contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# create-arch-app
|
|
2
|
+
|
|
3
|
+
DDD, Clean Architecture, Atomic Design을 지원하는 대화형 React/Next.js 프로젝트 생성 CLI 도구
|
|
4
|
+
|
|
5
|
+
## 특징
|
|
6
|
+
|
|
7
|
+
✨ **4가지 아키텍처 패턴 지원**
|
|
8
|
+
- DDD (Domain-Driven Design)
|
|
9
|
+
- Clean Architecture
|
|
10
|
+
- Atomic Design
|
|
11
|
+
- Default (기본 구조)
|
|
12
|
+
|
|
13
|
+
🚀 **프레임워크 선택**
|
|
14
|
+
- React (with Vite)
|
|
15
|
+
- Next.js (App Router / Pages Router)
|
|
16
|
+
|
|
17
|
+
💎 **TypeScript 기본 포함**
|
|
18
|
+
|
|
19
|
+
🎨 **스타일링 옵션**
|
|
20
|
+
- Tailwind CSS
|
|
21
|
+
- CSS Modules
|
|
22
|
+
|
|
23
|
+
📦 **선택 가능한 라이브러리**
|
|
24
|
+
- 상태관리: Zustand, Context API
|
|
25
|
+
- 폼: React Hook Form
|
|
26
|
+
- 테스팅: Vitest + Testing Library
|
|
27
|
+
|
|
28
|
+
## 설치 및 사용법
|
|
29
|
+
|
|
30
|
+
### npx로 즉시 사용 (권장)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 새 디렉토리에 프로젝트 생성
|
|
34
|
+
npx @daawoonkim/create-arch-app my-app
|
|
35
|
+
|
|
36
|
+
# 또는 현재 디렉토리에 직접 생성
|
|
37
|
+
npx @daawoonkim/create-arch-app .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 전역 설치
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g @daawoonkim/create-arch-app
|
|
44
|
+
|
|
45
|
+
# 새 디렉토리에 프로젝트 생성
|
|
46
|
+
create-arch-app my-app
|
|
47
|
+
|
|
48
|
+
# 현재 디렉토리에 직접 생성
|
|
49
|
+
create-arch-app .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
> **참고**: 현재 디렉토리(`.`)를 사용하려면 디렉토리가 비어있어야 합니다.
|
|
53
|
+
|
|
54
|
+
### 대화형 프롬프트
|
|
55
|
+
|
|
56
|
+
CLI를 실행하면 다음 질문들에 답하게 됩니다:
|
|
57
|
+
|
|
58
|
+
1. **프레임워크 선택**: React 또는 Next.js
|
|
59
|
+
2. **Next.js 버전 선택** (Next.js만 해당): Latest (권장), 15.x, 14.x, 13.x
|
|
60
|
+
3. **라우터 선택** (Next.js만 해당): App Router (권장) 또는 Pages Router
|
|
61
|
+
4. **아키텍처 패턴**: DDD, Clean, Atomic, Default
|
|
62
|
+
5. **스타일링 도구**: Tailwind CSS 또는 CSS Modules
|
|
63
|
+
6. **상태관리**: Zustand, Context API, None
|
|
64
|
+
7. **폼 라이브러리**: React Hook Form 또는 None
|
|
65
|
+
8. **테스팅 도구**: Vitest + Testing Library 포함 여부
|
|
66
|
+
|
|
67
|
+
## 사용 예시
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx @daawoonkim/create-arch-app my-enterprise-app
|
|
71
|
+
|
|
72
|
+
# 대화형 프롬프트
|
|
73
|
+
? 프레임워크를 선택하세요: Next.js
|
|
74
|
+
? Next.js 버전을 선택하세요: Latest (최신 버전, 권장)
|
|
75
|
+
? Next.js 라우터를 선택하세요: App Router (권장)
|
|
76
|
+
? 아키텍처 패턴을 선택하세요: DDD (Domain-Driven Design)
|
|
77
|
+
? 스타일링 도구를 선택하세요: Tailwind CSS
|
|
78
|
+
? 상태관리 라이브러리를 선택하세요: Zustand
|
|
79
|
+
? 폼 라이브러리를 선택하세요: React Hook Form
|
|
80
|
+
? 테스팅 도구를 포함하시겠습니까? Yes
|
|
81
|
+
|
|
82
|
+
✨ 프로젝트 생성 중...
|
|
83
|
+
📦 TypeScript 프로젝트로 설정됩니다 (기본값)
|
|
84
|
+
🚀 Next.js App Router 사용
|
|
85
|
+
✅ 프로젝트 생성 완료!
|
|
86
|
+
|
|
87
|
+
🎉 프로젝트가 성공적으로 생성되었습니다!
|
|
88
|
+
|
|
89
|
+
다음 명령어로 시작하세요:
|
|
90
|
+
cd my-enterprise-app
|
|
91
|
+
npm install
|
|
92
|
+
npm run dev
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 아키텍처 패턴 설명
|
|
96
|
+
|
|
97
|
+
### DDD (Domain-Driven Design)
|
|
98
|
+
|
|
99
|
+
엔터프라이즈급 애플리케이션에 적합한 패턴입니다.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
domain/ # 비즈니스 엔티티와 로직
|
|
103
|
+
├── entities/
|
|
104
|
+
├── repositories/
|
|
105
|
+
└── services/
|
|
106
|
+
application/ # 유스케이스
|
|
107
|
+
├── usecases/
|
|
108
|
+
└── ports/
|
|
109
|
+
infrastructure/ # 외부 서비스 통합
|
|
110
|
+
├── api/
|
|
111
|
+
└── persistence/
|
|
112
|
+
presentation/ # UI 컴포넌트
|
|
113
|
+
├── components/
|
|
114
|
+
└── pages/
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Clean Architecture
|
|
118
|
+
|
|
119
|
+
의존성 규칙과 레이어 분리에 중점을 둔 패턴입니다.
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
core/ # 비즈니스 로직
|
|
123
|
+
├── entities/
|
|
124
|
+
├── usecases/
|
|
125
|
+
└── interfaces/
|
|
126
|
+
features/ # 기능별 모듈
|
|
127
|
+
└── [feature]/
|
|
128
|
+
├── domain/
|
|
129
|
+
├── data/
|
|
130
|
+
└── presentation/
|
|
131
|
+
shared/ # 공통 컴포넌트
|
|
132
|
+
├── components/
|
|
133
|
+
└── utils/
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Atomic Design
|
|
137
|
+
|
|
138
|
+
UI 컴포넌트 중심 개발에 최적화된 패턴입니다.
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
components/
|
|
142
|
+
├── atoms/ # 가장 작은 UI 단위
|
|
143
|
+
├── molecules/ # atoms 조합
|
|
144
|
+
├── organisms/ # molecules 조합
|
|
145
|
+
├── templates/ # 페이지 레이아웃
|
|
146
|
+
└── pages/ # 실제 페이지
|
|
147
|
+
hooks/
|
|
148
|
+
utils/
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Default
|
|
152
|
+
|
|
153
|
+
빠른 시작을 원하는 개발자를 위한 기본 구조입니다.
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
components/
|
|
157
|
+
hooks/
|
|
158
|
+
pages/ (또는 app/)
|
|
159
|
+
utils/
|
|
160
|
+
styles/
|
|
161
|
+
types/
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 생성되는 파일 구조
|
|
165
|
+
|
|
166
|
+
### React 프로젝트
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
my-app/
|
|
170
|
+
├── src/
|
|
171
|
+
│ ├── [architecture folders]
|
|
172
|
+
│ ├── App.tsx
|
|
173
|
+
│ ├── main.tsx
|
|
174
|
+
│ └── index.css
|
|
175
|
+
├── index.html
|
|
176
|
+
├── vite.config.ts
|
|
177
|
+
├── tsconfig.json
|
|
178
|
+
├── package.json
|
|
179
|
+
└── README.md
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Next.js 프로젝트 (App Router)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
my-app/
|
|
186
|
+
├── app/
|
|
187
|
+
│ ├── layout.tsx
|
|
188
|
+
│ ├── page.tsx
|
|
189
|
+
│ └── globals.css
|
|
190
|
+
├── [architecture folders]
|
|
191
|
+
├── next.config.js
|
|
192
|
+
├── tsconfig.json
|
|
193
|
+
├── package.json
|
|
194
|
+
└── README.md
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Next.js 프로젝트 (Pages Router)
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
my-app/
|
|
201
|
+
├── pages/
|
|
202
|
+
│ ├── _app.tsx
|
|
203
|
+
│ ├── _document.tsx
|
|
204
|
+
│ └── index.tsx
|
|
205
|
+
├── styles/
|
|
206
|
+
│ └── globals.css
|
|
207
|
+
├── [architecture folders]
|
|
208
|
+
├── next.config.js
|
|
209
|
+
├── tsconfig.json
|
|
210
|
+
├── package.json
|
|
211
|
+
└── README.md
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## 요구 사항
|
|
215
|
+
|
|
216
|
+
- Node.js 18.0.0 이상
|
|
217
|
+
|
|
218
|
+
## 개발
|
|
219
|
+
|
|
220
|
+
이 프로젝트를 로컬에서 개발하려면:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 저장소 클론
|
|
224
|
+
git clone git@github.com:hec8897/create-arch-app.git
|
|
225
|
+
cd create-arch-app
|
|
226
|
+
|
|
227
|
+
# 의존성 설치
|
|
228
|
+
npm install
|
|
229
|
+
|
|
230
|
+
# TypeScript 컴파일
|
|
231
|
+
npm run build
|
|
232
|
+
|
|
233
|
+
# 로컬 링크 생성
|
|
234
|
+
npm link
|
|
235
|
+
|
|
236
|
+
# 테스트
|
|
237
|
+
cd ~/test-project
|
|
238
|
+
create-arch-app my-test-app
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## 로드맵
|
|
242
|
+
|
|
243
|
+
- [ ] 추가 아키텍처 패턴 (Feature-Sliced Design, Hexagonal Architecture)
|
|
244
|
+
- [ ] UI 라이브러리 통합 (shadcn/ui, MUI, Ant Design)
|
|
245
|
+
- [ ] 추가 상태관리 옵션 (Redux Toolkit, Jotai, Recoil)
|
|
246
|
+
- [ ] 인증 통합 (NextAuth, Supabase)
|
|
247
|
+
- [ ] ORM 통합 (Prisma, Drizzle)
|
|
248
|
+
- [ ] 컴포넌트 생성기
|
|
249
|
+
- [ ] CI/CD 설정 자동화
|
|
250
|
+
- [ ] Docker 설정 포함
|
|
251
|
+
- [ ] Monorepo 지원 (Turborepo)
|
|
252
|
+
|
|
253
|
+
## 기여하기
|
|
254
|
+
|
|
255
|
+
버그 리포트, 기능 제안, PR 모두 환영합니다!
|
|
256
|
+
|
|
257
|
+
## 라이선스
|
|
258
|
+
|
|
259
|
+
MIT
|
|
260
|
+
|
|
261
|
+
## 작성자
|
|
262
|
+
|
|
263
|
+
daawoonkim
|
|
264
|
+
|
|
265
|
+
## 참고
|
|
266
|
+
|
|
267
|
+
이 프로젝트는 현대적인 프론트엔드 개발 모범 사례와 다양한 아키텍처 패턴을 기반으로 합니다.
|
package/TESTING.md
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# 테스트 가이드
|
|
2
|
+
|
|
3
|
+
## 로컬 테스트 방법
|
|
4
|
+
|
|
5
|
+
### 1. 준비
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd /Users/dawoon/create-arch-app
|
|
9
|
+
npm run build
|
|
10
|
+
npm link
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### 2. 테스트 디렉토리 생성
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
mkdir -p ~/test-create-arch-app
|
|
17
|
+
cd ~/test-create-arch-app
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 3. 주요 조합 테스트
|
|
21
|
+
|
|
22
|
+
다음 조합들을 테스트하여 정상 작동을 확인합니다:
|
|
23
|
+
|
|
24
|
+
#### 테스트 0: 현재 디렉토리에 생성 (`.` 옵션)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
mkdir test-current-dir && cd test-current-dir
|
|
28
|
+
create-arch-app .
|
|
29
|
+
|
|
30
|
+
# 프롬프트 선택:
|
|
31
|
+
# - Framework: React (with Vite)
|
|
32
|
+
# - Architecture: Default
|
|
33
|
+
# - Styling: Tailwind CSS
|
|
34
|
+
# - State: None
|
|
35
|
+
# - Form: None
|
|
36
|
+
# - Testing: No
|
|
37
|
+
|
|
38
|
+
npm install
|
|
39
|
+
npm run dev
|
|
40
|
+
|
|
41
|
+
# ✅ 현재 디렉토리에 직접 파일들이 생성되었는지 확인
|
|
42
|
+
# ✅ 불필요한 중첩 폴더가 없는지 확인
|
|
43
|
+
cd ..
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### 테스트 1: React + DDD + Tailwind
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
create-arch-app test-react-ddd
|
|
50
|
+
|
|
51
|
+
# 프롬프트 선택:
|
|
52
|
+
# - Framework: React (with Vite)
|
|
53
|
+
# - Architecture: DDD
|
|
54
|
+
# - Styling: Tailwind CSS
|
|
55
|
+
# - State: Zustand
|
|
56
|
+
# - Form: React Hook Form
|
|
57
|
+
# - Testing: Yes
|
|
58
|
+
|
|
59
|
+
cd test-react-ddd
|
|
60
|
+
npm install
|
|
61
|
+
npm run dev
|
|
62
|
+
|
|
63
|
+
# ✅ 개발 서버가 정상 실행되는지 확인
|
|
64
|
+
# ✅ http://localhost:5173 접속하여 화면 확인
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### 테스트 2: Next.js + App Router + Clean Architecture
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
create-arch-app test-nextjs-app-clean
|
|
71
|
+
|
|
72
|
+
# 프롬프트 선택:
|
|
73
|
+
# - Framework: Next.js
|
|
74
|
+
# - Next.js Version: Latest (최신 버전, 권장)
|
|
75
|
+
# - Router: App Router (권장)
|
|
76
|
+
# - Architecture: Clean Architecture
|
|
77
|
+
# - Styling: Tailwind CSS
|
|
78
|
+
# - State: Context API
|
|
79
|
+
# - Form: None
|
|
80
|
+
# - Testing: Yes
|
|
81
|
+
|
|
82
|
+
cd test-nextjs-app-clean
|
|
83
|
+
npm install
|
|
84
|
+
npm run dev
|
|
85
|
+
|
|
86
|
+
# ✅ 개발 서버가 정상 실행되는지 확인
|
|
87
|
+
# ✅ http://localhost:3000 접속하여 화면 확인
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### 테스트 3: Next.js + Pages Router + Atomic Design
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
create-arch-app test-nextjs-pages-atomic
|
|
94
|
+
|
|
95
|
+
# 프롬프트 선택:
|
|
96
|
+
# - Framework: Next.js
|
|
97
|
+
# - Next.js Version: 14.x
|
|
98
|
+
# - Router: Pages Router
|
|
99
|
+
# - Architecture: Atomic Design
|
|
100
|
+
# - Styling: CSS Modules
|
|
101
|
+
# - State: None
|
|
102
|
+
# - Form: None
|
|
103
|
+
# - Testing: No
|
|
104
|
+
|
|
105
|
+
cd test-nextjs-pages-atomic
|
|
106
|
+
npm install
|
|
107
|
+
npm run dev
|
|
108
|
+
|
|
109
|
+
# ✅ 개발 서버가 정상 실행되는지 확인
|
|
110
|
+
# ✅ http://localhost:3000 접속하여 화면 확인
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### 테스트 4: React + Default + CSS Modules
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
create-arch-app test-react-default
|
|
117
|
+
|
|
118
|
+
# 프롬프트 선택:
|
|
119
|
+
# - Framework: React (with Vite)
|
|
120
|
+
# - Architecture: Default
|
|
121
|
+
# - Styling: CSS Modules
|
|
122
|
+
# - State: None
|
|
123
|
+
# - Form: None
|
|
124
|
+
# - Testing: No
|
|
125
|
+
|
|
126
|
+
cd test-react-default
|
|
127
|
+
npm install
|
|
128
|
+
npm run dev
|
|
129
|
+
|
|
130
|
+
# ✅ 개발 서버가 정상 실행되는지 확인
|
|
131
|
+
# ✅ http://localhost:5173 접속하여 화면 확인
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 4. 체크리스트
|
|
135
|
+
|
|
136
|
+
각 테스트 프로젝트에서 다음 사항들을 확인합니다:
|
|
137
|
+
|
|
138
|
+
- [ ] 프로젝트 폴더가 정상 생성됨
|
|
139
|
+
- [ ] package.json에 올바른 의존성이 포함됨
|
|
140
|
+
- [ ] tsconfig.json이 생성됨
|
|
141
|
+
- [ ] 선택한 아키텍처에 맞는 폴더 구조가 생성됨
|
|
142
|
+
- [ ] `npm install`이 오류 없이 완료됨
|
|
143
|
+
- [ ] TypeScript 컴파일 오류가 없음
|
|
144
|
+
- [ ] `npm run dev`로 개발 서버가 실행됨
|
|
145
|
+
- [ ] 브라우저에서 화면이 정상 표시됨
|
|
146
|
+
- [ ] README.md에 프로젝트 정보가 올바르게 표시됨
|
|
147
|
+
- [ ] Tailwind CSS 선택 시 스타일이 적용됨
|
|
148
|
+
- [ ] 테스팅 옵션 선택 시 테스트 설정이 포함됨
|
|
149
|
+
|
|
150
|
+
### 5. 빌드 테스트
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
npm run build
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
- [ ] 프로덕션 빌드가 오류 없이 완료됨
|
|
157
|
+
- [ ] 빌드 결과물이 생성됨 (React: dist/, Next.js: .next/)
|
|
158
|
+
|
|
159
|
+
### 6. 테스트 후 정리
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
cd ~/test-create-arch-app
|
|
163
|
+
rm -rf test-*
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 자동화된 테스트 (향후 추가)
|
|
167
|
+
|
|
168
|
+
향후 다음과 같은 자동화된 테스트를 추가할 예정입니다:
|
|
169
|
+
|
|
170
|
+
- E2E 테스트 (Playwright)
|
|
171
|
+
- 스냅샷 테스트
|
|
172
|
+
- 생성된 프로젝트의 린트 검사
|
|
173
|
+
- 모든 조합에 대한 자동 생성 및 빌드 테스트
|
|
174
|
+
|
|
175
|
+
## 문제 해결
|
|
176
|
+
|
|
177
|
+
### 문제: npm link 후 명령어를 찾을 수 없음
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npm unlink -g create-arch-app
|
|
181
|
+
cd /Users/dawoon/create-arch-app
|
|
182
|
+
npm link
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 문제: 포트가 이미 사용 중
|
|
186
|
+
|
|
187
|
+
다른 포트로 실행:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# React (Vite)
|
|
191
|
+
npm run dev -- --port 5174
|
|
192
|
+
|
|
193
|
+
# Next.js
|
|
194
|
+
npm run dev -- -p 3001
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 문제: TypeScript 오류
|
|
198
|
+
|
|
199
|
+
생성된 프로젝트에서:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# node_modules 삭제 후 재설치
|
|
203
|
+
rm -rf node_modules package-lock.json
|
|
204
|
+
npm install
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## 테스트 결과 보고
|
|
208
|
+
|
|
209
|
+
테스트 중 발견한 문제는 다음 정보와 함께 보고해주세요:
|
|
210
|
+
|
|
211
|
+
1. 선택한 옵션 조합
|
|
212
|
+
2. 오류 메시지
|
|
213
|
+
3. 실행 환경 (OS, Node 버전)
|
|
214
|
+
4. 재현 방법
|
|
215
|
+
|
|
216
|
+
## 성능 테스트
|
|
217
|
+
|
|
218
|
+
프로젝트 생성 시간을 측정합니다:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
time create-arch-app test-perf
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
- 목표: 10초 이내 (의존성 설치 제외)
|
package/bin/cli.js
ADDED