byuckchon-frontend-cli 1.4.0 → 1.4.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.
- package/README.md +38 -1
- package/bin/index.js +1 -1
- package/package.json +1 -1
- package/src/config/index.js +3 -0
package/README.md
CHANGED
|
@@ -10,11 +10,47 @@ React(Vite) / Next.js(App Router) TypeScript 프로젝트를 만들고, `bc chat
|
|
|
10
10
|
|
|
11
11
|
## 설치
|
|
12
12
|
|
|
13
|
+
`bc` 는 **CLI 툴** 이라서 프로젝트 의존성으로 설치하면 안 되고, **글로벌**(또는 `npx`)로 써야 합니다.
|
|
14
|
+
|
|
13
15
|
```bash
|
|
16
|
+
# 글로벌 설치 (제일 흔한 방식)
|
|
14
17
|
npm install -g byuckchon-frontend-cli
|
|
15
|
-
|
|
18
|
+
pnpm add -g byuckchon-frontend-cli
|
|
19
|
+
yarn global add byuckchon-frontend-cli
|
|
20
|
+
|
|
21
|
+
# 또는 설치 없이 일회성
|
|
22
|
+
npx byuckchon-frontend-cli adopt
|
|
23
|
+
pnpm dlx byuckchon-frontend-cli adopt
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
설치되면 `bc` / `byuckchon-frontend-cli` 두 개 다 PATH 에 깔립니다.
|
|
27
|
+
|
|
28
|
+
### 모노레포에서 쓰기
|
|
29
|
+
|
|
30
|
+
`bc` 자체는 **루트에 한 번만** 글로벌 설치하면 충분합니다. 다만 `bc.config.json` 은
|
|
31
|
+
**각 패키지(앱) 디렉터리마다 따로** 두는 걸 권장 — Tailwind 버전, 라우팅, 스타일링이
|
|
32
|
+
앱마다 다르면 `detected.*` 가 달라야 RAG 컨텍스트도 정확해집니다.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# 루트에서 한 번만
|
|
36
|
+
npm i -g byuckchon-frontend-cli
|
|
37
|
+
|
|
38
|
+
# 각 앱마다 따로 셋업
|
|
39
|
+
cd apps/web && bc adopt # apps/web/bc.config.json 생성
|
|
40
|
+
cd apps/mobile && bc adopt # apps/mobile/bc.config.json 생성
|
|
41
|
+
|
|
42
|
+
# 일할 땐 그 앱 디렉토리에서 실행
|
|
43
|
+
cd apps/web && bc # apps/web/bc.config.json 을 자동으로 읽어감
|
|
16
44
|
```
|
|
17
45
|
|
|
46
|
+
`bc` 는 실행 디렉토리에서 위로 거슬러 올라가며 가장 가까운 `bc.config.json` 을 찾습니다.
|
|
47
|
+
즉 모노레포 루트에 `bc.config.json` 이 없고 `apps/web/bc.config.json` 만 있으면,
|
|
48
|
+
`apps/web/somewhere/deeper/...` 에서 `bc` 를 쳐도 `apps/web/bc.config.json` 이 잡힙니다.
|
|
49
|
+
|
|
50
|
+
> 만약 `pnpm add byuckchon-frontend-cli` (글로벌 플래그 없이) 한 상태에서 `bc` 가
|
|
51
|
+
> 안 먹는다면, 이건 패키지 의존성으로 박혀서 그래요. `pnpm remove byuckchon-frontend-cli`
|
|
52
|
+
> 후 위처럼 `pnpm add -g` 로 다시 설치해주세요.
|
|
53
|
+
|
|
18
54
|
## 명령
|
|
19
55
|
|
|
20
56
|
### `bc init` — 새 프로젝트 만들기
|
|
@@ -196,6 +232,7 @@ bc config set-gateway # 게이트웨이 해제 (BYOK 모
|
|
|
196
232
|
- [x] Phase 3a: 코드베이스 RAG (`bc index`, `/rag` 토글, 자동 컨텍스트 주입)
|
|
197
233
|
- [x] Phase 3b: `bc gen api-types` (OpenAPI → TS 타입), `/paste` 클립보드 이미지, 한글 IME 수정
|
|
198
234
|
- [x] Phase 3c-1: chat 시작 시 인덱스 자동 빌드, OpenAPI 자동 fetch+캐시+시스템 프롬프트 주입
|
|
235
|
+
- [x] v1.4.1 — `deepMerge(null, obj)` TypeError 수정 (`bc adopt` 한 프로젝트에서 모든 명령이 터지던 버그)
|
|
199
236
|
- [ ] Phase 3c-2: Figma 실 fetch (URL → 노드 트리 → 컴포넌트 인텐트)
|
|
200
237
|
- [ ] Phase 4: `bc gen component/page` (AST 편집 + 검증 루프), `/apply` diff 미리보기
|
|
201
238
|
|
package/bin/index.js
CHANGED
package/package.json
CHANGED
package/src/config/index.js
CHANGED
|
@@ -78,6 +78,9 @@ async function writeJson(file, data) {
|
|
|
78
78
|
|
|
79
79
|
function deepMerge(base, patch) {
|
|
80
80
|
if (patch == null) return base;
|
|
81
|
+
// 한쪽이 null/원시값이거나, 한쪽만 배열이면 patch 가 우선.
|
|
82
|
+
// 특히 base 가 null 인데 patch 가 객체일 때 `k in base` 가 TypeError 던지는 걸 방지.
|
|
83
|
+
if (base == null) return patch;
|
|
81
84
|
if (typeof base !== 'object' || typeof patch !== 'object') return patch;
|
|
82
85
|
if (Array.isArray(base) || Array.isArray(patch)) return patch;
|
|
83
86
|
const out = { ...base };
|