tylersong 1.0.9 → 1.0.10
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/.cursor/plans/-----------8c733d2f.plan.md +158 -0
- package/.editorconfig +15 -0
- package/.eslintrc.json +33 -0
- package/.github/workflows/ci.yml +59 -25
- package/.github/workflows/deploy.yml +7 -13
- package/.github/workflows/publish.yml +30 -297
- package/.prettierrc +13 -0
- package/README.md +133 -45
- package/dist/index.js +61 -23
- package/dist/index.js.map +1 -1
- package/docs/auto-deployment.md +191 -0
- package/docs/deployment.md +82 -0
- package/docs/development.md +394 -0
- package/docs/direct-deployment.md +116 -0
- package/docs/discord-setup.md +158 -0
- package/docs/github-actions-fixes.md +142 -0
- package/docs/improvements.md +287 -0
- package/docs/pipeline.md +228 -0
- package/docs/testing.md +173 -0
- package/docs/usage.md +112 -0
- package/docs/workflows.md +176 -0
- package/package.json +16 -3
- package/src/index.ts +77 -32
- package/test/index.test.ts +167 -0
- package/tsconfig.eslint.json +9 -0
- package/tsconfig.json +1 -1
- package/vitest.config.ts +22 -0
|
@@ -2,319 +2,52 @@ name: Publish to NPM
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
workflow_run:
|
|
8
|
-
workflows: ["Continuous Integration"]
|
|
9
|
-
types: [completed]
|
|
10
|
-
branches: [main]
|
|
11
|
-
|
|
12
|
-
permissions:
|
|
13
|
-
contents: write
|
|
14
|
-
packages: write
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
15
7
|
|
|
16
8
|
jobs:
|
|
17
|
-
|
|
18
|
-
name:
|
|
19
|
-
runs-on: ubuntu-latest
|
|
20
|
-
if: always()
|
|
21
|
-
outputs:
|
|
22
|
-
ci-success: ${{ steps.ci-check.outputs.success }}
|
|
23
|
-
|
|
24
|
-
steps:
|
|
25
|
-
- name: Check CI workflow status
|
|
26
|
-
id: ci-check
|
|
27
|
-
run: |
|
|
28
|
-
if [ "${{ github.event_name }}" == "workflow_run" ]; then
|
|
29
|
-
if [ "${{ github.event.workflow_run.conclusion }}" == "success" ]; then
|
|
30
|
-
echo "success=true" >> $GITHUB_OUTPUT
|
|
31
|
-
else
|
|
32
|
-
echo "success=false" >> $GITHUB_OUTPUT
|
|
33
|
-
exit 1
|
|
34
|
-
fi
|
|
35
|
-
else
|
|
36
|
-
# For push and tag events, assume CI will run or has run
|
|
37
|
-
echo "success=true" >> $GITHUB_OUTPUT
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
auto-version:
|
|
41
|
-
name: Auto Version Update
|
|
42
|
-
runs-on: ubuntu-latest
|
|
43
|
-
if: |
|
|
44
|
-
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
|
|
45
|
-
(github.event_name == 'workflow_run' && needs.check-ci.outputs.ci-success == 'true')
|
|
46
|
-
needs:
|
|
47
|
-
- check-ci
|
|
48
|
-
outputs:
|
|
49
|
-
should-publish: ${{ steps.version-update.outputs.should-publish }}
|
|
50
|
-
current-version: ${{ steps.version-update.outputs.current-version }}
|
|
51
|
-
version-updated: ${{ steps.version-update.outputs.version-updated }}
|
|
52
|
-
|
|
53
|
-
steps:
|
|
54
|
-
- name: Checkout code
|
|
55
|
-
uses: actions/checkout@v4
|
|
56
|
-
with:
|
|
57
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
58
|
-
fetch-depth: 0
|
|
59
|
-
|
|
60
|
-
- name: Setup Node.js environment
|
|
61
|
-
uses: ./.github/actions/setup-runtime
|
|
62
|
-
with:
|
|
63
|
-
runtime: node
|
|
64
|
-
|
|
65
|
-
- name: Configure Git
|
|
66
|
-
run: |
|
|
67
|
-
git config user.name "github-actions[bot]"
|
|
68
|
-
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
69
|
-
|
|
70
|
-
- name: Auto version update and check
|
|
71
|
-
id: version-update
|
|
72
|
-
run: |
|
|
73
|
-
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
74
|
-
PUBLISHED_VERSION=$(npm view tylersong version 2>/dev/null || echo "0.0.0")
|
|
75
|
-
|
|
76
|
-
echo "Current version: $CURRENT_VERSION"
|
|
77
|
-
echo "Published version: $PUBLISHED_VERSION"
|
|
78
|
-
|
|
79
|
-
# Tag push는 항상 배포 (버전 체크만)
|
|
80
|
-
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
|
|
81
|
-
echo "should-publish=true" >> $GITHUB_OUTPUT
|
|
82
|
-
echo "current-version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
83
|
-
echo "version-updated=false" >> $GITHUB_OUTPUT
|
|
84
|
-
echo "Tag push detected: will publish without version update"
|
|
85
|
-
exit 0
|
|
86
|
-
fi
|
|
87
|
-
|
|
88
|
-
# 이미 같은 버전이 배포되어 있으면 자동으로 버전 업데이트
|
|
89
|
-
if [ "$CURRENT_VERSION" == "$PUBLISHED_VERSION" ]; then
|
|
90
|
-
echo "Same version exists, auto-updating version..."
|
|
91
|
-
|
|
92
|
-
# 최근 커밋 메시지 분석하여 semantic versioning 적용
|
|
93
|
-
LAST_COMMIT_MSG=$(git log -1 --pretty=%B)
|
|
94
|
-
echo "Last commit: $LAST_COMMIT_MSG"
|
|
95
|
-
|
|
96
|
-
# 커밋 메시지에 따라 버전 업데이트 타입 결정
|
|
97
|
-
if echo "$LAST_COMMIT_MSG" | grep -qE "BREAKING CHANGE|feat!|fix!"; then
|
|
98
|
-
VERSION_TYPE="major"
|
|
99
|
-
elif echo "$LAST_COMMIT_MSG" | grep -qE "^feat(\(.+\))?:"; then
|
|
100
|
-
VERSION_TYPE="minor"
|
|
101
|
-
else
|
|
102
|
-
VERSION_TYPE="patch"
|
|
103
|
-
fi
|
|
104
|
-
|
|
105
|
-
echo "Detected version type: $VERSION_TYPE"
|
|
106
|
-
|
|
107
|
-
# package.json 버전 업데이트
|
|
108
|
-
npm version $VERSION_TYPE --no-git-tag-version
|
|
109
|
-
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
110
|
-
|
|
111
|
-
# TypeScript 소스 코드의 하드코딩된 버전도 업데이트
|
|
112
|
-
if [ -f "src/index.ts" ]; then
|
|
113
|
-
sed -i.bak "s/program\.version(\".*\")/program.version(\"$NEW_VERSION\")/g" src/index.ts
|
|
114
|
-
rm -f src/index.ts.bak
|
|
115
|
-
fi
|
|
116
|
-
|
|
117
|
-
echo "Updated version to: $NEW_VERSION"
|
|
118
|
-
echo "current-version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
119
|
-
echo "should-publish=true" >> $GITHUB_OUTPUT
|
|
120
|
-
echo "version-updated=true" >> $GITHUB_OUTPUT
|
|
121
|
-
|
|
122
|
-
# 변경사항 커밋 및 푸시
|
|
123
|
-
git add package.json package-lock.json src/index.ts
|
|
124
|
-
git commit -m "chore: bump version to v$NEW_VERSION [skip ci]"
|
|
125
|
-
git push origin main
|
|
126
|
-
|
|
127
|
-
else
|
|
128
|
-
echo "Version already different: will publish"
|
|
129
|
-
echo "current-version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
130
|
-
echo "should-publish=true" >> $GITHUB_OUTPUT
|
|
131
|
-
echo "version-updated=false" >> $GITHUB_OUTPUT
|
|
132
|
-
fi
|
|
133
|
-
|
|
134
|
-
version-check:
|
|
135
|
-
name: Check Version Changes (for tags)
|
|
9
|
+
publish:
|
|
10
|
+
name: NPM 패키지 배포
|
|
136
11
|
runs-on: ubuntu-latest
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
id-token: write
|
|
16
|
+
|
|
142
17
|
steps:
|
|
143
|
-
- name:
|
|
18
|
+
- name: 코드 체크아웃
|
|
144
19
|
uses: actions/checkout@v4
|
|
145
20
|
|
|
146
|
-
- name:
|
|
147
|
-
uses:
|
|
21
|
+
- name: Bun 설치
|
|
22
|
+
uses: oven-sh/setup-bun@v1
|
|
148
23
|
with:
|
|
149
|
-
|
|
24
|
+
bun-version: latest
|
|
150
25
|
|
|
151
|
-
- name:
|
|
152
|
-
id: version-check
|
|
153
|
-
run: |
|
|
154
|
-
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
155
|
-
echo "current-version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
156
|
-
echo "should-publish=true" >> $GITHUB_OUTPUT
|
|
157
|
-
echo "Tag push detected: will publish"
|
|
158
|
-
|
|
159
|
-
publish:
|
|
160
|
-
name: Publish Package
|
|
161
|
-
runs-on: ubuntu-latest
|
|
162
|
-
needs: [auto-version, version-check]
|
|
163
|
-
if: |
|
|
164
|
-
always() &&
|
|
165
|
-
(
|
|
166
|
-
(needs.auto-version.outputs.should-publish == 'true') ||
|
|
167
|
-
(needs.version-check.outputs.should-publish == 'true')
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
steps:
|
|
171
|
-
- name: Checkout code
|
|
172
|
-
uses: actions/checkout@v4
|
|
173
|
-
|
|
174
|
-
- name: Setup Node.js for publishing
|
|
26
|
+
- name: Node.js 설치 (NPM 배포용)
|
|
175
27
|
uses: actions/setup-node@v4
|
|
176
28
|
with:
|
|
177
|
-
node-version:
|
|
178
|
-
registry-url:
|
|
179
|
-
cache: "npm"
|
|
29
|
+
node-version: '20.x'
|
|
30
|
+
registry-url: 'https://registry.npmjs.org'
|
|
180
31
|
|
|
181
|
-
- name:
|
|
182
|
-
run:
|
|
32
|
+
- name: 의존성 설치
|
|
33
|
+
run: bun install
|
|
183
34
|
|
|
184
|
-
- name:
|
|
185
|
-
run:
|
|
35
|
+
- name: 테스트 실행
|
|
36
|
+
run: bun run test
|
|
186
37
|
|
|
187
|
-
- name:
|
|
188
|
-
run:
|
|
189
|
-
ls -la dist/
|
|
190
|
-
test -f dist/index.js || (echo "Build artifact missing!" && exit 1)
|
|
38
|
+
- name: 린트 실행
|
|
39
|
+
run: bun run lint
|
|
191
40
|
|
|
192
|
-
- name:
|
|
193
|
-
|
|
194
|
-
run: npm publish --dry-run
|
|
195
|
-
env:
|
|
196
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
41
|
+
- name: TypeScript 빌드
|
|
42
|
+
run: bun run build
|
|
197
43
|
|
|
198
|
-
- name:
|
|
199
|
-
|
|
200
|
-
run: npm publish
|
|
44
|
+
- name: NPM에 배포
|
|
45
|
+
run: npm publish --provenance --access public
|
|
201
46
|
env:
|
|
202
47
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
203
48
|
|
|
204
|
-
- name:
|
|
205
|
-
if:
|
|
206
|
-
uses: actions/github-script@v7
|
|
207
|
-
with:
|
|
208
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
209
|
-
script: |
|
|
210
|
-
const { owner, repo } = context.repo;
|
|
211
|
-
const tagName = context.ref.replace('refs/tags/', '');
|
|
212
|
-
const version = '${{ needs.auto-version.outputs.current-version || needs.version-check.outputs.current-version }}';
|
|
213
|
-
|
|
214
|
-
await github.rest.repos.createRelease({
|
|
215
|
-
owner,
|
|
216
|
-
repo,
|
|
217
|
-
tag_name: tagName,
|
|
218
|
-
name: `Release v${version}`,
|
|
219
|
-
body: `🚀 **tylersong CLI v${version}**
|
|
220
|
-
|
|
221
|
-
### 설치
|
|
222
|
-
\`\`\`bash
|
|
223
|
-
npx tylersong
|
|
224
|
-
\`\`\`
|
|
225
|
-
|
|
226
|
-
### 변경사항
|
|
227
|
-
이 릴리스의 전체 변경사항은 [커밋 히스토리](https://github.com/${owner}/${repo}/commits/v${version})를 확인해주세요.`,
|
|
228
|
-
draft: false,
|
|
229
|
-
prerelease: false
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
notify:
|
|
233
|
-
name: Notification
|
|
234
|
-
runs-on: ubuntu-latest
|
|
235
|
-
needs: [publish, auto-version, version-check]
|
|
236
|
-
if: |
|
|
237
|
-
always() &&
|
|
238
|
-
(
|
|
239
|
-
(needs.auto-version.outputs.should-publish == 'true') ||
|
|
240
|
-
(needs.version-check.outputs.should-publish == 'true')
|
|
241
|
-
)
|
|
242
|
-
|
|
243
|
-
steps:
|
|
244
|
-
- name: Checkout code
|
|
245
|
-
uses: actions/checkout@v4
|
|
246
|
-
|
|
247
|
-
- name: Determine publish status
|
|
248
|
-
id: status
|
|
249
|
-
run: |
|
|
250
|
-
if [ "${{ needs.publish.result }}" == "success" ]; then
|
|
251
|
-
echo "status=success" >> $GITHUB_OUTPUT
|
|
252
|
-
echo "title=패키지 배포 성공 🚀" >> $GITHUB_OUTPUT
|
|
253
|
-
echo "description=tylersong v${{ needs.auto-version.outputs.current-version || needs.version-check.outputs.current-version }}이 NPM에 성공적으로 배포되었습니다!" >> $GITHUB_OUTPUT
|
|
254
|
-
else
|
|
255
|
-
echo "status=failure" >> $GITHUB_OUTPUT
|
|
256
|
-
echo "title=패키지 배포 실패 💥" >> $GITHUB_OUTPUT
|
|
257
|
-
echo "description=tylersong v${{ needs.auto-version.outputs.current-version || needs.version-check.outputs.current-version }} 배포 중 오류가 발생했습니다." >> $GITHUB_OUTPUT
|
|
258
|
-
fi
|
|
259
|
-
|
|
260
|
-
- name: Create fields JSON
|
|
261
|
-
id: fields
|
|
262
|
-
run: |
|
|
263
|
-
RELEASE_TYPE="${{ startsWith(github.ref, 'refs/tags/v') && 'Tag Release' || 'Auto Deploy' }}"
|
|
264
|
-
FIELDS=$(cat << EOF
|
|
265
|
-
[
|
|
266
|
-
{
|
|
267
|
-
"name": "버전",
|
|
268
|
-
"value": "v${{ needs.auto-version.outputs.current-version || needs.version-check.outputs.current-version }}",
|
|
269
|
-
"inline": true
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
"name": "배포 타입",
|
|
273
|
-
"value": "$RELEASE_TYPE",
|
|
274
|
-
"inline": true
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
"name": "브랜치/태그",
|
|
278
|
-
"value": "${{ github.ref_name }}",
|
|
279
|
-
"inline": true
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
"name": "NPM",
|
|
283
|
-
"value": "[tylersong 패키지](https://www.npmjs.com/package/tylersong)",
|
|
284
|
-
"inline": false
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
"name": "설치 명령어",
|
|
288
|
-
"value": "\`npx tylersong\`",
|
|
289
|
-
"inline": false
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
"name": "배포자",
|
|
293
|
-
"value": "${{ github.actor }}",
|
|
294
|
-
"inline": true
|
|
295
|
-
}
|
|
296
|
-
]
|
|
297
|
-
EOF
|
|
298
|
-
)
|
|
299
|
-
echo "fields<<EOF" >> $GITHUB_OUTPUT
|
|
300
|
-
echo "$FIELDS" >> $GITHUB_OUTPUT
|
|
301
|
-
echo "EOF" >> $GITHUB_OUTPUT
|
|
302
|
-
|
|
303
|
-
- name: Send Discord notification
|
|
304
|
-
uses: ./.github/actions/discord-notify
|
|
305
|
-
with:
|
|
306
|
-
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
|
307
|
-
status: ${{ steps.status.outputs.status }}
|
|
308
|
-
title: ${{ steps.status.outputs.title }}
|
|
309
|
-
description: ${{ steps.status.outputs.description }}
|
|
310
|
-
fields: ${{ steps.fields.outputs.fields }}
|
|
311
|
-
|
|
312
|
-
- name: Console output
|
|
49
|
+
- name: 배포 알림
|
|
50
|
+
if: success()
|
|
313
51
|
run: |
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
echo "📦 NPM: https://www.npmjs.com/package/tylersong"
|
|
317
|
-
else
|
|
318
|
-
echo "❌ Package publish failed!"
|
|
319
|
-
exit 1
|
|
320
|
-
fi
|
|
52
|
+
echo "✅ 패키지가 NPM에 성공적으로 배포되었습니다!"
|
|
53
|
+
echo "버전: ${{ github.ref_name }}"
|
package/.prettierrc
ADDED
package/README.md
CHANGED
|
@@ -1,99 +1,187 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# 📝 tylersong
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
### 🚀 개발자 포트폴리오를 터미널에서 만나보세요
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/tylersong)
|
|
8
|
+
[](https://www.npmjs.com/package/tylersong)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
4
11
|
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/tylersong)
|
|
7
|
-
[](https://opensource.org/licenses/MIT)
|
|
12
|
+
**송민성(Tyler Song)** 개발자의 대화형 CLI 자기소개 도구
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
[빠른 시작](#-빠른-시작) • [사용법](#-사용법) • [기능](#-주요-기능) • [개발자 정보](#-개발자-정보)
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## ✨ 주요 기능
|
|
21
|
+
|
|
22
|
+
<table>
|
|
23
|
+
<tr>
|
|
24
|
+
<td width="33%" align="center">
|
|
25
|
+
<h3>🎨 대화형 UI</h3>
|
|
26
|
+
<p>아름다운 터미널 인터페이스로<br/>개발자 정보를 표시합니다</p>
|
|
27
|
+
</td>
|
|
28
|
+
<td width="33%" align="center">
|
|
29
|
+
<h3>⚡ 즉시 실행</h3>
|
|
30
|
+
<p>설치 없이 npx로<br/>바로 실행 가능합니다</p>
|
|
31
|
+
</td>
|
|
32
|
+
<td width="33%" align="center">
|
|
33
|
+
<h3>🔗 빠른 링크</h3>
|
|
34
|
+
<p>GitHub 프로필을<br/>원클릭으로 열어봅니다</p>
|
|
35
|
+
</td>
|
|
36
|
+
</tr>
|
|
37
|
+
</table>
|
|
10
38
|
|
|
11
39
|
## 🚀 빠른 시작
|
|
12
40
|
|
|
13
|
-
### 즉시 실행 (
|
|
41
|
+
### 💡 즉시 실행 (추천!)
|
|
42
|
+
|
|
43
|
+
설치 없이 바로 실행하세요:
|
|
14
44
|
|
|
15
45
|
```bash
|
|
16
46
|
npx tylersong
|
|
17
47
|
```
|
|
18
48
|
|
|
19
|
-
### 전역 설치
|
|
49
|
+
### 📦 전역 설치
|
|
50
|
+
|
|
51
|
+
자주 사용한다면 전역으로 설치하세요:
|
|
20
52
|
|
|
21
53
|
```bash
|
|
54
|
+
# npm 사용
|
|
22
55
|
npm install -g tylersong
|
|
56
|
+
|
|
57
|
+
# bun 사용 (권장)
|
|
58
|
+
bun install -g tylersong
|
|
59
|
+
|
|
60
|
+
# 실행
|
|
23
61
|
tylersong
|
|
24
62
|
```
|
|
25
63
|
|
|
26
64
|
## 💻 사용법
|
|
27
65
|
|
|
28
|
-
### 기본 실행
|
|
66
|
+
### 📍 기본 실행
|
|
67
|
+
|
|
68
|
+
터미널에서 실행하면 대화형 프롬프트가 나타납니다:
|
|
29
69
|
|
|
30
70
|
```bash
|
|
31
71
|
tylersong
|
|
32
|
-
# ✨ 저에 대해 궁금하신가요? 라는 질문에 답하면 프로필이 표시됩니다
|
|
33
72
|
```
|
|
34
73
|
|
|
35
|
-
|
|
74
|
+
"✨ 저에 대해 궁금하신가요?" 질문에 답하면 아래와 같은 프로필이 표시됩니다.
|
|
75
|
+
|
|
76
|
+
### ⚙️ 명령어 옵션
|
|
77
|
+
|
|
78
|
+
| 명령어 | 단축키 | 설명 |
|
|
79
|
+
|--------|--------|------|
|
|
80
|
+
| `tylersong --help` | `-h` | 도움말 표시 |
|
|
81
|
+
| `tylersong --version` | `-v` | 버전 정보 확인 |
|
|
82
|
+
| `tylersong --github` | `-g` | GitHub 프로필 브라우저에서 열기 |
|
|
83
|
+
|
|
84
|
+
### 🎬 실행 예시
|
|
36
85
|
|
|
37
86
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
87
|
+
# 기본 실행
|
|
88
|
+
$ npx tylersong
|
|
89
|
+
|
|
90
|
+
# GitHub 프로필 바로 열기
|
|
91
|
+
$ npx tylersong --github
|
|
92
|
+
|
|
93
|
+
# 도움말 보기
|
|
94
|
+
$ npx tylersong --help
|
|
42
95
|
```
|
|
43
96
|
|
|
44
|
-
## 🎨
|
|
97
|
+
## 🎨 미리보기
|
|
45
98
|
|
|
46
99
|
```
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
100
|
+
╭───────────────────────────────────────────╮
|
|
101
|
+
│ 🚀 Frontend Developer Profile 🚀 │
|
|
102
|
+
╰───────────────────────────────────────────╯
|
|
50
103
|
|
|
51
|
-
|
|
52
|
-
|
|
104
|
+
👋 안녕하세요!
|
|
105
|
+
💻 개발자 송민성입니다.
|
|
53
106
|
|
|
54
|
-
|
|
55
|
-
|
|
107
|
+
📌 Github: https://github.com/alstjd0051
|
|
108
|
+
✉️ E-mail: wsc7202@gmail.com
|
|
56
109
|
|
|
57
|
-
|
|
110
|
+
💡 더 많은 정보는 --help를 통해 확인해주세요.
|
|
58
111
|
```
|
|
59
112
|
|
|
60
113
|
## 👨💻 개발자 정보
|
|
61
114
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
115
|
+
<div align="center">
|
|
116
|
+
|
|
117
|
+
| | |
|
|
118
|
+
|:---:|:---|
|
|
119
|
+
| 👤 **이름** | 송민성 (Tyler Song) |
|
|
120
|
+
| 💼 **직업** | Frontend Developer |
|
|
121
|
+
| 🐙 **GitHub** | [@alstjd0051](https://github.com/alstjd0051) |
|
|
122
|
+
| 📧 **Email** | wsc7202@gmail.com |
|
|
123
|
+
|
|
124
|
+
</div>
|
|
66
125
|
|
|
67
126
|
## 🛠️ 기술 스택
|
|
68
127
|
|
|
69
128
|
이 CLI 도구는 다음 기술로 제작되었습니다:
|
|
70
129
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
130
|
+
<table>
|
|
131
|
+
<tr>
|
|
132
|
+
<td align="center" width="20%">
|
|
133
|
+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg" width="48" height="48" alt="TypeScript" />
|
|
134
|
+
<br><b>TypeScript</b>
|
|
135
|
+
<br><sub>타입 안전성</sub>
|
|
136
|
+
</td>
|
|
137
|
+
<td align="center" width="20%">
|
|
138
|
+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg" width="48" height="48" alt="Node.js" />
|
|
139
|
+
<br><b>Node.js</b>
|
|
140
|
+
<br><sub>크로스 플랫폼</sub>
|
|
141
|
+
</td>
|
|
142
|
+
|
|
143
|
+
<td align="center" width="20%">
|
|
144
|
+
<img src="https://raw.githubusercontent.com/SBoudrias/Inquirer.js/main/assets/inquirer_readme.svg?sanitize=true" width="48" height="48" alt="Inquirer.js" />
|
|
145
|
+
<br><b>Inquirer.js</b>
|
|
146
|
+
<br><sub>대화형 프롬프트</sub>
|
|
147
|
+
</td>
|
|
148
|
+
<td align="center" width="20%">
|
|
149
|
+
<img src="https://raw.githubusercontent.com/chalk/chalk/main/media/logo.svg" width="48" height="48" alt="Chalk" />
|
|
150
|
+
<br><b>Chalk</b>
|
|
151
|
+
<br><sub>터미널 스타일링</sub>
|
|
152
|
+
</td>
|
|
153
|
+
</tr>
|
|
154
|
+
</table>
|
|
76
155
|
|
|
77
156
|
## 📦 패키지 정보
|
|
78
157
|
|
|
79
|
-
|
|
80
|
-
- **의존성**: 최소한의 검증된 의존성만 사용
|
|
81
|
-
- **호환성**: Node.js 14+ 지원
|
|
82
|
-
- **플랫폼**: Windows, macOS, Linux 모두 지원
|
|
158
|
+
<div align="center">
|
|
83
159
|
|
|
84
|
-
|
|
160
|
+
| 항목 | 상세 |
|
|
161
|
+
|:---:|:---|
|
|
162
|
+
| 📦 **크기** | 작고 가벼운 패키지 (~20KB) |
|
|
163
|
+
| 🔗 **의존성** | 최소한의 검증된 의존성만 사용 |
|
|
164
|
+
| ✅ **호환성** | Node.js 14+ |
|
|
165
|
+
| 🌍 **플랫폼** | Windows, macOS, Linux |
|
|
166
|
+
| 🧪 **테스트** | Vitest로 검증됨 |
|
|
85
167
|
|
|
86
|
-
|
|
168
|
+
</div>
|
|
87
169
|
|
|
88
|
-
|
|
89
|
-
- **Email**: wsc7202@gmail.com
|
|
170
|
+
## 🤝 기여 & 피드백
|
|
90
171
|
|
|
91
|
-
|
|
172
|
+
버그 리포트나 기능 제안은 언제든 환영합니다! 💬
|
|
92
173
|
|
|
93
|
-
MIT License - 자유롭게 사용하세요!
|
|
94
174
|
|
|
95
|
-
---
|
|
96
175
|
|
|
97
|
-
**Made with ❤️ by Tyler Song**
|
|
98
176
|
|
|
99
|
-
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<div align="center">
|
|
181
|
+
|
|
182
|
+
**Made with ❤️ by [Tyler Song](https://github.com/alstjd0051)**
|
|
183
|
+
|
|
184
|
+
[](https://github.com/alstjd0051)
|
|
185
|
+
[](mailto:wsc7202@gmail.com)
|
|
186
|
+
|
|
187
|
+
</div>
|