create-saas-starter-workspace 0.1.2 → 0.1.4

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.2 (미출판)
3
+ ## 0.1.3 — 2026-06-12
4
4
 
5
5
  - 문서·doctor 안내의 점검 명령을 `pnpm run doctor`로 정정 — `doctor`는 pnpm 내장 명령이라 `pnpm doctor`는 우리 스크립트 대신 내장 명령(무출력)을 실행했다.
6
6
 
package/bin/index.mjs CHANGED
@@ -28,6 +28,7 @@ const HELP = `create-saas-starter-workspace v${pkg.version}
28
28
  --agent <claude|codex|opencode> 사용할 코딩 에이전트 기록 (기본: claude)
29
29
  --skip-install 의존성 설치 생략
30
30
  --no-doctor 생성 후 doctor 점검 생략
31
+ --no-summary 마무리 안내 생략 (setup 스크립트가 호출할 때 사용)
31
32
  -v, --version 버전 출력
32
33
  -h, --help 이 도움말
33
34
 
@@ -42,7 +43,7 @@ function fail(message) {
42
43
  // ---------- 인자 파싱 ----------
43
44
 
44
45
  function parseArgs(argv) {
45
- const opts = { name: null, agent: "claude", skipInstall: false, noDoctor: false };
46
+ const opts = { name: null, agent: "claude", skipInstall: false, noDoctor: false, noSummary: false };
46
47
  const positionals = [];
47
48
  for (let i = 0; i < argv.length; i++) {
48
49
  const arg = argv[i];
@@ -56,6 +57,9 @@ function parseArgs(argv) {
56
57
  opts.skipInstall = true;
57
58
  } else if (arg === "--no-doctor") {
58
59
  opts.noDoctor = true;
60
+ } else if (arg === "--no-summary") {
61
+ // 부트스트랩(setup)이 호출할 때 쓴다 — 마무리 멘트는 흐름의 주인이 한 번만 한다.
62
+ opts.noSummary = true;
59
63
  } else if (arg === "--agent") {
60
64
  const value = argv[++i];
61
65
  if (value === undefined || value.startsWith("-")) {
@@ -159,7 +163,7 @@ async function main() {
159
163
  } else if (!runStepSilent("pnpm", ["--version"])) {
160
164
  installFailed = ["web", "mobile"];
161
165
  console.log("\n▸ [2/3] 의존성 설치 — pnpm이 없어 건너뜁니다.");
162
- console.log(" → npm install -g pnpm@10 후, 아래 \"다음 단계\"의 설치 명령을 실행하세요.");
166
+ console.log(" → npm install -g pnpm@10 후, 아래 안내의 설치 명령을 실행하세요.");
163
167
  } else {
164
168
  for (const sub of ["web", "mobile"]) {
165
169
  console.log(`\n▸ [2/3] 의존성 설치: ${sub}/ (몇 분 걸릴 수 있습니다)`);
@@ -179,17 +183,20 @@ async function main() {
179
183
  spawnSync(process.execPath, [path.join(dest, "scripts", "doctor.mjs")], { cwd: dest, stdio: "inherit" });
180
184
  }
181
185
 
182
- console.log("─".repeat(60));
183
- console.log(`🎉 "${name}" 워크스페이스가 만들어졌습니다.`);
186
+ // 실패 안내는 모드와 무관하게 항상 출력한다 — 축하·다음 단계만 호출자(setup)에게 양보한다.
184
187
  if (installFailed.length > 0) {
185
188
  console.log(`\n⚠ 의존성 설치가 끝나지 않았습니다 (${installFailed.join(", ")}). 이렇게 마무리하세요:`);
186
189
  for (const sub of installFailed) console.log(` cd ${name}/${sub} && pnpm install --frozen-lockfile`);
187
190
  console.log(` 그다음 cd ${name} && pnpm run doctor 로 다시 확인합니다.`);
188
191
  }
189
- console.log(`\n다음 단계:`);
190
- console.log(` 1. cd ${name}`);
191
- console.log(` 2. 코딩 에이전트 실행: ${opts.agent === "claude" ? "claude" : opts.agent} (첫 실행 시 로그인 안내가 나옵니다)`);
192
- console.log(` 3. 자세한 길잡이는 ${name}/START-HERE.md`);
192
+ if (!opts.noSummary) {
193
+ console.log("─".repeat(60));
194
+ console.log(`🎉 "${name}" 워크스페이스가 만들어졌습니다.`);
195
+ console.log(`\n다음 단계:`);
196
+ console.log(` 1. cd ${name}`);
197
+ console.log(` 2. 코딩 에이전트 실행: ${opts.agent === "claude" ? "claude" : opts.agent} (첫 실행 시 로그인 안내가 나옵니다)`);
198
+ console.log(` 3. 자세한 길잡이는 ${name}/START-HERE.md`);
199
+ }
193
200
  console.log("");
194
201
  }
195
202
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-saas-starter-workspace",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "강의용 SaaS 워크스페이스(web + mobile + 에이전트 도구)를 한 번에 만드는 생성기. 생성 → 의존성 설치 → doctor 점검까지 한 흐름.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",