Skip to content

Commit 2ee45b8

Browse files
committed
docs: build-config README.md 작성
1 parent d2651a3 commit 2ee45b8

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

packages/build-config/README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 워크스페이스 패키지 빌드 시스템
2+
3+
이 빌드 시스템은 tsup을 기반으로 워크스페이스 환경에서 패키지를 효율적으로 빌드하기 위한 도구입니다.
4+
5+
## 기능
6+
7+
- `package.json`의 exports 필드를 기반으로 자동 엔트리포인트 생성
8+
- ESM 및 CommonJS 형식 동시 지원
9+
- TypeScript 타입 정의 파일(.d.ts) 자동 생성
10+
- 개발 모드 및 감시 모드 지원
11+
- 소스맵 생성
12+
- 트리 쉐이킹 최적화
13+
14+
## 사용 방법
15+
16+
### 기본 사용법
17+
18+
`build.js` 파일을 워크스페이스 루트에 생성하고 다음과 같이 작성합니다.
19+
20+
```javascript
21+
import { run } from '@workspace/build-config';
22+
import pkg from './package.json' assert { type: 'json' };
23+
24+
run({ pkg });
25+
```
26+
27+
### 명령어
28+
29+
```bash
30+
# 기본 빌드
31+
node build.js
32+
33+
# 개발 모드 (코드 최소화 없음)
34+
node build.js --dev
35+
36+
# 감시 모드 (파일 변경 감지하여 자동 재빌드)
37+
node build.js --watch
38+
39+
# 개발 + 감시 모드 동시 사용
40+
node build.js --dev --watch
41+
```
42+
43+
### 커스텀 설정
44+
45+
추가 설정을 적용하려면 `config` 객체를 전달합니다:
46+
47+
```javascript
48+
run({
49+
pkg,
50+
config: {
51+
// 추가 tsup 설정 옵션
52+
outDir: 'custom/dist',
53+
esbuildOptions: (options) => {
54+
// esbuild 설정 커스터마이징
55+
return options;
56+
},
57+
},
58+
});
59+
```
60+
61+
## 작동 방식
62+
63+
1. `package.json``exports` 필드를 분석하여 엔트리포인트를 자동으로 구성합니다.
64+
2. `exports`가 없는 경우 기본값으로 `src/index.ts`를 사용합니다.
65+
3. 의존성 및 피어 의존성을 자동으로 외부 모듈로 처리합니다.
66+
4. ESM 및 CommonJS 형식으로 번들을 생성합니다.
67+
5. TypeScript 타입 정의 파일을 생성합니다.
68+
69+
## 예시 package.json 구성
70+
71+
```json
72+
{
73+
"name": "my-package",
74+
"exports": {
75+
".": {
76+
"types": "./dist/index.d.ts",
77+
"import": "./dist/index.mjs",
78+
"require": "./dist/index.js"
79+
},
80+
"./utils": {
81+
"types": "./dist/utils/index.d.ts",
82+
"import": "./dist/utils/index.mjs",
83+
"require": "./dist/utils/index.js"
84+
}
85+
},
86+
"main": "dist/index.js",
87+
"types": "dist/index.d.ts",
88+
"scripts": {
89+
"build": "node build.js",
90+
"dev": "node build.js --watch",
91+
"postinstall": "pnpm build"
92+
},
93+
"devDependencies": {
94+
"@workspace/build-config": "workspace:*"
95+
}
96+
}
97+
```
98+
99+
## 주의사항
100+
101+
- `exports` 필드의 `types` 경로는 규칙에 맞게 작성되어야 합니다 (`./dist/{경로}.d.ts`).
102+
- 빌드 실패 시 프로세스가 종료되며 오류 메시지가 출력됩니다.

0 commit comments

Comments
 (0)