Skip to content

Commit b9a669d

Browse files
authored
docs(cli): sync commands and configuration docs (#1233)
1 parent dbaf303 commit b9a669d

File tree

2 files changed

+106
-66
lines changed

2 files changed

+106
-66
lines changed

docs/content/react/getting-started/cli/commands.mdx

Lines changed: 50 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
---
22
title: Commands
3-
description: "@seed-design/cli 패키지를 사용하여 seed-design을 더 쉽게 사용할 수 있습니다."
3+
description: "@seed-design/cli 명령어를 안내해요."
44
---
55

6+
## 공통 동작
7+
8+
- `add`, `add-all``seed-design.json` 설정 파일을 사용해요.
9+
- 설정 파일이 없거나 읽을 수 없으면 생성할지 먼저 물어봐요.
10+
- 항목 추가 시 필요한 npm 패키지 의존성은 자동으로 설치돼요.
11+
- 기존 파일과 내용이 다르면 기본적으로 `덮어쓰기 / 백업 후 교체 / 건너뛰기`를 선택할 수 있어요.
12+
- `--on-diff` 옵션을 주면 충돌 처리 방식을 미리 고정할 수 있어요.
13+
614
## init
715

8-
`seed-design.json` 파일을 생성하기 위한 명령어입니다.
16+
`seed-design.json` 파일을 생성하는 명령어예요.
917

10-
<Card icon={<IconFile />} title="Configuration" href="/react/getting-started/cli/configuration#옵션">
18+
<Card icon={<IconFile />} title="Configuration" href="/react/getting-started/cli/configuration">
1119

1220
`seed-design.json` 파일에 대해 알아봅니다.
1321

@@ -37,26 +45,29 @@ npx @seed-design/cli@latest init
3745
3846
◇ seed-design 폴더 경로를 입력해주세요. (기본값은 프로젝트 루트에 생성됩니다.)
3947
│ ./seed-design
48+
49+
◇ 개선을 위해 익명 사용 데이터를 수집할까요?
50+
│ Yes
4051
```
4152

4253
</Step>
4354
</Steps>
4455

4556
### 옵션
4657

47-
```sh copy
48-
Usage:
49-
$ seed-design init
58+
| 옵션 | 설명 |
59+
|------|------|
60+
| `-c, --cwd <cwd>` | 작업 디렉토리. 기본값은 현재 디렉토리 |
61+
| `-y, --yes` | 질문 없이 기본값으로 `seed-design.json` 생성 |
62+
| `-h, --help` | 도움말 출력 |
5063

51-
Options:
52-
-c, --cwd <cwd> 작업 디렉토리. 기본값은 현재 디렉토리.
53-
-y, --yes 모든 질문에 대해 기본값으로 답변합니다.
54-
-h, --help Display this message
64+
```package-install
65+
npx @seed-design/cli@latest init --yes
5566
```
5667

5768
## add
5869

59-
스니펫을 다운로드받기 위한 명령어입니다.
70+
스니펫을 다운로드하고 프로젝트에 추가하는 명령어예요.
6071

6172
<Card icon={<IconFile />} title="Snippet" href="/react/components/concepts/snippet">
6273

@@ -68,7 +79,7 @@ Options:
6879
npx @seed-design/cli@latest add [...item-ids]
6980
```
7081

71-
`item-ids`입력하지 않고 명령어를 입력하면 다운로드받을 수 있는 모든 항목을 인터랙티브하게 선택할 수 있습니다.
82+
`item-ids`생략하면, 다운로드 가능한 항목을 인터랙티브하게 선택할 수 있어요.
7283

7384
```package-install
7485
npx @seed-design/cli@latest add
@@ -88,30 +99,27 @@ npx @seed-design/cli@latest add
8899
89100
```
90101

91-
여러 항목을 직접 지정해서 추가할 수도 있습니다.
102+
여러 항목을 직접 지정할 수도 있어요.
92103

93104
```package-install
94105
npx @seed-design/cli@latest add ui:action-button ui:alert-dialog
95106
```
96107

97108
### 옵션
98109

99-
```sh copy
100-
Usage:
101-
$ seed-design add [...item-ids]
102-
103-
Options:
104-
-c, --cwd <cwd> 작업 디렉토리. 기본값은 현재 디렉토리.
105-
-u, --baseUrl <baseUrl> 레지스트리의 base URL. 기본값은 현재 디렉토리.
106-
--overwrite 기존 파일을 확인 없이 덮어쓰기
107-
-h, --help Display this message
108-
```
110+
| 옵션 | 설명 |
111+
|------|------|
112+
| `-c, --cwd <cwd>` | 작업 디렉토리. 기본값은 현재 디렉토리 |
113+
| `-u, --baseUrl <baseUrl>` | 레지스트리 base URL |
114+
| `--on-diff <mode>` | 파일 충돌 처리 방식 지정 (`overwrite` 또는 `backup`) |
115+
| `-a, --all` | **Deprecated**. 현재는 에러를 출력하고 `add-all` 사용을 안내 |
116+
| `-h, --help` | 도움말 출력 |
109117

110118
### baseUrl 사용하기
111119

112120
`--baseUrl` 옵션을 사용하면 스니펫을 다운로드할 레지스트리를 직접 지정할 수 있습니다.
113121

114-
기본값은 [`https://seed-design.io`](https://seed-design.io)입니다.
122+
기본값은 배포 환경 기준 [`https://seed-design.io`](https://seed-design.io)입니다.
115123

116124
이 옵션은 특정 SEED React 패키지와 호환되는 스니펫이 필요한 경우 활용할 수 있습니다.
117125

@@ -123,9 +131,16 @@ npx @seed-design/cli@latest add --baseUrl https://1-0.seed-design.pages.dev
123131
npx @seed-design/cli@latest add --baseUrl https://1-1.seed-design.pages.dev
124132
```
125133

134+
### 파일 충돌 처리
135+
136+
`--on-diff`를 지정하지 않으면, 기존 파일과 새 스니펫이 다를 때 아래 중 하나를 직접 고를 수 있어요.
137+
- 덮어쓰기
138+
- 기존 파일을 `legacy-<파일명>-<timestamp>`로 백업 후 교체
139+
- 건너뛰기
140+
126141
## add-all
127142

128-
레지스트리의 모든 항목을 한 번에 다운로드받기 위한 명령어입니다.
143+
레지스트리 단위로 항목을 한 번에 추가하는 명령어예요.
129144

130145
```package-install
131146
npx @seed-design/cli@latest add-all [...registry-ids]
@@ -149,17 +164,15 @@ deprecated 항목을 포함하려면 `--include-deprecated` 옵션을 사용하
149164
npx @seed-design/cli@latest add-all ui --include-deprecated # ui 레지스트리의 모든 항목 추가 (deprecated 포함)
150165
```
151166

167+
레지스트리 ID와 `--all`을 모두 생략하면, 추가할 레지스트리를 인터랙티브하게 선택할 수 있어요.
168+
152169
### 옵션
153170

154-
```sh copy
155-
Usage:
156-
$ seed-design add-all [...registry-ids]
157-
158-
Options:
159-
-a, --all 모든 레지스트리의 모든 항목 추가
160-
--include-deprecated deprecated 항목 포함 (--all과 함께 사용 시)
161-
-c, --cwd <cwd> 작업 디렉토리. 기본값은 현재 디렉토리.
162-
-u, --baseUrl <baseUrl> 레지스트리의 base URL. 기본값은 현재 디렉토리.
163-
--overwrite 기존 파일을 확인 없이 덮어쓰기
164-
-h, --help Display this message
165-
```
171+
| 옵션 | 설명 |
172+
|------|------|
173+
| `-a, --all` | 모든 레지스트리의 모든 항목 추가 |
174+
| `--include-deprecated` | deprecated 항목 포함 |
175+
| `-c, --cwd <cwd>` | 작업 디렉토리. 기본값은 현재 디렉토리 |
176+
| `-u, --baseUrl <baseUrl>` | 레지스트리 base URL |
177+
| `--on-diff <mode>` | 파일 충돌 처리 방식 지정 (`overwrite` 또는 `backup`) |
178+
| `-h, --help` | 도움말 출력 |

docs/content/react/getting-started/cli/configuration.mdx

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
title: Configuration
3-
description: seed-design.json 파일을 통해 CLI를 사용할 때 필요한 설정을 명시해요.
3+
description: seed-design.json 설정을 안내해요.
44
---
55

66

7-
## 설정
7+
## seed-design.json 만들기
88

99
`seed-design.json` 파일은 CLI로 생성하거나 직접 추가할 수 있어요.
1010

@@ -33,38 +33,55 @@ CLI로 seed-design을 추가하는 방법을 알아봐요.
3333
</Tab>
3434
</Tabs>
3535

36-
## 옵션
36+
## 기본 형태
37+
38+
```json title="seed-design.json"
39+
{
40+
"rsc": false,
41+
"tsx": true,
42+
"path": "./seed-design",
43+
"telemetry": true
44+
}
45+
```
46+
47+
<Callout>
48+
`seed-design.json`은 엄격하게 파싱돼요. 문서에 없는 키를 임의로 추가하면 CLI 실행 시 오류가 날 수 있어요.
49+
</Callout>
50+
51+
## 옵션 한눈에 보기
52+
53+
| 옵션 | 타입 | 기본값 | 설명 |
54+
|------|------|--------|------|
55+
| `path` | `string` | 없음 (init에서는 `./seed-design`) | 스니펫이 생성될 루트 경로 |
56+
| `rsc` | `boolean` | `false` | React Server Components 사용 여부에 맞춰 `"use client"` 유지/제거 |
57+
| `tsx` | `boolean` | `true` | 생성 파일을 TypeScript(`.ts/.tsx`) 또는 JavaScript(`.js/.jsx`)로 변환 |
58+
| `telemetry` | `boolean` | `true` | 익명 사용 데이터 수집 여부 |
59+
| `$schema` | `string` | 선택값 | JSON 스키마 힌트용 필드 (CLI 동작에는 영향 없음) |
3760

3861
### path
3962

40-
`path`는 생성되는 컴포넌트의 기본 경로를 설정해요.
63+
`path`는 스니펫이 생성되는 루트 디렉토리예요.
64+
65+
`add`/`add-all` 실행 시 파일은 `path` 아래에 레지스트리 ID와 스니펫 내부 경로 기준으로 생성돼요.
66+
고정된 폴더 구조가 아니라, 선택한 항목에 따라 구조가 달라져요.
4167

42-
seed-design이 필요로 하는 폴더나 파일들은 `path`로 지정된 경로의 하위에 생겨요.
43-
`seed-design`의 root 폴더는 유저가 입력할 수 있게 하되, 그 내부에 생성되는 폴더나 파일들은 고정되는 형식이에요.
44-
4568
```json title="seed-design.json"
4669
{
4770
"path": "./seed-design"
4871
}
4972
```
5073

51-
만약 위와 같이 설정했다면, `./seed-design` 폴더가 생성이 되고,
52-
그 안에 `ui`, `utils`, `hooks`와 같은 폴더들이 생기게 될거에요.
53-
5474
<Files>
55-
<Folder name="seed-design (유저 설정, path)" defaultOpen>
56-
<Folder name="ui (고정)" defaultOpen>
75+
<Folder name="seed-design (path)" defaultOpen>
76+
<Folder name="ui (레지스트리 ID 예시)" defaultOpen>
5777
<File name="action-button.tsx" />
58-
<File name="alert-dialog.tsx" />
5978
<File name="tabs.tsx" />
6079
</Folder>
61-
<Folder name="hooks (고정)" defaultOpen>
62-
<File name="use-portal.ts" />
63-
<File name="use-focus-trap.ts" />
80+
<Folder name="breeze (레지스트리 ID 예시)" defaultOpen>
81+
<File name="animate-number.tsx" />
6482
</Folder>
65-
<Folder name="utils (고정)" defaultOpen>
83+
<Folder name="utils (스니펫 내부 경로 예시)" defaultOpen>
6684
<File name="classnames.ts" />
67-
<File name="use-merge-refs.ts" />
6885
</Folder>
6986
</Folder>
7087
</Files>
@@ -73,7 +90,9 @@ seed-design이 필요로 하는 폴더나 파일들은 `path`로 지정된 경
7390

7491
[React Server Components](https://react.dev/reference/rsc/server-components)를 사용할지 설정해요.
7592

76-
`true`로 설정하면 컴포넌트에 `use client` directive가 추가돼요.
93+
스니펫에 이미 있는 `"use client"` directive를 유지할지 결정해요.
94+
- `true`: `"use client"`를 유지해요.
95+
- `false`: 파일 최상단의 `"use client"`를 제거해요.
7796

7897
```json title="seed-design.json"
7998
{
@@ -85,7 +104,7 @@ seed-design이 필요로 하는 폴더나 파일들은 `path`로 지정된 경
85104

86105
TypeScript를 사용할지 설정해요.
87106

88-
`true`로 설정하면 `.tsx` 컴포넌트가, `false`로 설정하면 `.jsx` 컴포넌트가 생성돼요.
107+
`false`로 설정하면 `.ts/.tsx` 파일이 `.js/.jsx`로 변환돼요.
89108

90109
```json title="seed-design.json"
91110
{
@@ -98,23 +117,30 @@ TypeScript를 사용할지 설정해요.
98117
텔레메트리 데이터 수집 여부를 설정해요.
99118

100119
SEED Design CLI는 개선을 위해 익명 사용 데이터를 수집해요.
101-
개인 정보는 수집하지 않으며, 커맨드 사용 패턴과 성능 지표만 수집해요.
120+
프로젝트 경로, 파일 내용, 소스 코드는 수집하지 않아요.
102121

103122
```json title="seed-design.json"
104123
{
105124
"telemetry": true | false // default: true
106125
}
107126
```
108127

109-
#### 수집되는 데이터
110-
- 사용된 커맨드 (init, add, add-all)
111-
- 설정 옵션 (tsx, rsc 사용 여부)
112-
- 성능 지표 (실행 시간)
113-
- 기술 환경 (Node.js 버전, OS 플랫폼)
128+
#### 우선순위
129+
130+
아래 순서로 텔레메트리 활성화 여부를 판단해요.
131+
1. `DISABLE_TELEMETRY=true` 환경 변수
132+
2. `SEED_DISABLE_TELEMETRY=true` 환경 변수
133+
3. `seed-design.json``telemetry`
134+
4. 기본값 `true`
135+
136+
#### 수집되는 데이터 예시
137+
- 실행 이벤트: `init`, `add`, `add-all`
138+
- 실행 통계: 실행 시간(`duration_ms`), 추가된 항목 수
139+
- 설정 정보: `tsx`, `rsc`, `include_deprecated`, `yes_option`
114140

115141
#### 수집되지 않는 데이터
116-
- 프로젝트 경로, 파일 이름
117-
- 컴포넌트 이름
142+
- 프로젝트 경로, 생성된 파일 경로
143+
- 스니펫 파일 내용
118144
- 소스 코드
119145
- 개인 식별 정보
120146

@@ -136,4 +162,5 @@ export SEED_DISABLE_TELEMETRY=true
136162

137163
### $schema
138164

139-
준비중이에요.
165+
`$schema`는 선택적으로 추가할 수 있는 문자열 필드예요.
166+
현재 CLI 동작에는 영향을 주지 않고, 에디터의 JSON 자동완성/검증 용도로만 사용할 수 있어요.

0 commit comments

Comments
 (0)