@simplysm/sd-cli 13.0.0-beta.50 → 13.0.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.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * replace-deps 명령 옵션
3
+ */
4
+ export interface ReplaceDepsOptions {
5
+ /** sd.config.ts에 전달할 추가 옵션 */
6
+ options: string[];
7
+ }
8
+ /**
9
+ * sd.config.ts의 replaceDeps 설정에 따라 node_modules 패키지를 로컬 소스로 symlink 교체한다.
10
+ */
11
+ export declare function runReplaceDeps(opts: ReplaceDepsOptions): Promise<void>;
12
+ //# sourceMappingURL=replace-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-deps.d.ts","sourceRoot":"","sources":["../../src/commands/replace-deps.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5E"}
@@ -0,0 +1,16 @@
1
+ import { consola } from "consola";
2
+ import { loadSdConfig } from "../utils/sd-config.js";
3
+ import { setupReplaceDeps } from "../utils/replace-deps.js";
4
+ async function runReplaceDeps(opts) {
5
+ const cwd = process.cwd();
6
+ const sdConfig = await loadSdConfig({ cwd, dev: false, opt: opts.options });
7
+ if (sdConfig.replaceDeps == null) {
8
+ consola.warn("sd.config.ts\uC5D0 replaceDeps \uC124\uC815\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.");
9
+ return;
10
+ }
11
+ await setupReplaceDeps(cwd, sdConfig.replaceDeps);
12
+ }
13
+ export {
14
+ runReplaceDeps
15
+ };
16
+ //# sourceMappingURL=replace-deps.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/replace-deps.ts"],
4
+ "mappings": "AAAA,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAajC,eAAsB,eAAe,MAAyC;AAC5E,QAAM,MAAM,QAAQ,IAAI;AAExB,QAAM,WAAW,MAAM,aAAa,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,CAAC;AAE1E,MAAI,SAAS,eAAe,MAAM;AAChC,YAAQ,KAAK,6EAAqC;AAClD;AAAA,EACF;AAEA,QAAM,iBAAiB,KAAK,SAAS,WAAW;AAClD;",
5
+ "names": []
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/commands/typecheck.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAmCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAwB5G;AAoCD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsL3E"}
1
+ {"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/commands/typecheck.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAmCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAwB5G;AA+DD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuL3E"}
@@ -36,7 +36,13 @@ function extractPackages(fileNames, cwd, config) {
36
36
  }
37
37
  return packages;
38
38
  }
39
- function createTypecheckTasks(packages, cwd) {
39
+ function hasNonPackageFiles(fileNames, cwd) {
40
+ return fileNames.some((f) => {
41
+ const relativePath = pathPosix(path.relative(cwd, f));
42
+ return !relativePath.startsWith("packages/");
43
+ });
44
+ }
45
+ function createTypecheckTasks(packages, cwd, includeNonPackage) {
40
46
  const tasks = [];
41
47
  for (const info of packages.values()) {
42
48
  for (const env of info.envs) {
@@ -54,6 +60,16 @@ function createTypecheckTasks(packages, cwd) {
54
60
  });
55
61
  }
56
62
  }
63
+ if (includeNonPackage) {
64
+ tasks.push({
65
+ displayName: "\uAE30\uD0C0",
66
+ buildInfo: {
67
+ name: "root",
68
+ cwd,
69
+ emit: false
70
+ }
71
+ });
72
+ }
57
73
  return tasks;
58
74
  }
59
75
  async function runTypecheck(options) {
@@ -93,9 +109,10 @@ async function runTypecheck(options) {
93
109
  packageCount: packages.size,
94
110
  packages: [...packages.keys()]
95
111
  });
96
- const tasks = createTypecheckTasks(packages, cwd);
112
+ const nonPackage = hasNonPackageFiles(fileNames, cwd);
113
+ const tasks = createTypecheckTasks(packages, cwd, nonPackage);
97
114
  if (tasks.length === 0) {
98
- process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
115
+ process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uB300\uC0C1\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
99
116
  return;
100
117
  }
101
118
  const maxConcurrency = Math.max(Math.floor(os.cpus().length * 7 / 8), 1);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/typecheck.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sd-cli.d.ts","sourceRoot":"","sources":["../src/sd-cli.ts"],"names":[],"mappings":";AAGA,OAAO,uBAAuB,CAAC;AAC/B,OAAc,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC;AAkBzC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiRpD"}
1
+ {"version":3,"file":"sd-cli.d.ts","sourceRoot":"","sources":["../src/sd-cli.ts"],"names":[],"mappings":";AAGA,OAAO,uBAAuB,CAAC;AAC/B,OAAc,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC;AAmBzC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAuSpD"}
package/dist/sd-cli.js CHANGED
@@ -8,6 +8,7 @@ import { runWatch } from "./commands/watch.js";
8
8
  import { runDev } from "./commands/dev.js";
9
9
  import { runBuild } from "./commands/build.js";
10
10
  import { runPublish } from "./commands/publish.js";
11
+ import { runReplaceDeps } from "./commands/replace-deps.js";
11
12
  import { runDevice } from "./commands/device.js";
12
13
  import path from "path";
13
14
  import fs from "fs";
@@ -236,6 +237,23 @@ function createCliParser(argv) {
236
237
  options: args.options
237
238
  });
238
239
  }
240
+ ).command(
241
+ "replace-deps",
242
+ "sd.config.ts\uC758 replaceDeps \uC124\uC815\uC5D0 \uB530\uB77C node_modules \uD328\uD0A4\uC9C0\uB97C \uB85C\uCEEC \uC18C\uC2A4\uB85C symlink \uAD50\uCCB4\uD55C\uB2E4.",
243
+ (cmd) => cmd.version(false).hide("help").options({
244
+ options: {
245
+ type: "string",
246
+ array: true,
247
+ alias: "o",
248
+ description: "sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uC635\uC158 (\uC608: -o key=value)",
249
+ default: []
250
+ }
251
+ }),
252
+ async (args) => {
253
+ await runReplaceDeps({
254
+ options: args.options
255
+ });
256
+ }
239
257
  ).demandCommand(1, "\uBA85\uB839\uC5B4\uB97C \uC9C0\uC815\uD574\uC8FC\uC138\uC694.").strict();
240
258
  }
241
259
  const cliEntryPath = process.argv.at(1);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/sd-cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -15,8 +15,10 @@ export interface DtsWatchInfo {
15
15
  export interface DtsBuildInfo {
16
16
  name: string;
17
17
  cwd: string;
18
- pkgDir: string;
19
- env: TypecheckEnv;
18
+ /** 패키지 디렉토리. 미지정 시 non-package 모드 (packages/ 제외 전체 타입체크) */
19
+ pkgDir?: string;
20
+ /** 타입체크 환경. pkgDir과 함께 사용 */
21
+ env?: TypecheckEnv;
20
22
  /** true면 .d.ts 생성 + 타입체크, false면 타입체크만 (기본값: true) */
21
23
  emit?: boolean;
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dts.worker.d.ts","sourceRoot":"","sources":["../../src/workers/dts.worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIlG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;IAClB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AA2GD;;GAEG;AACH,iBAAe,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAgHnE;AASD;;;;GAIG;AACH,iBAAe,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG9D;AAED,QAAA,MAAM,MAAM;;;uBAAiC,OAAO,aAAa;kBAAY,OAAO,QAAQ;;;CAG1F,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"dts.worker.d.ts","sourceRoot":"","sources":["../../src/workers/dts.worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIlG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AA2GD;;GAEG;AACH,iBAAe,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAgInE;AASD;;;;GAIG;AACH,iBAAe,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG9D;AAED,QAAA,MAAM,MAAM;;;uBAAiC,OAAO,aAAa;kBAAY,OAAO,QAAQ;;;CAG1F,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -72,21 +72,36 @@ function createDtsPathRewriter(pkgDir) {
72
72
  async function buildDts(info) {
73
73
  try {
74
74
  const parsedConfig = parseRootTsconfig(info.cwd);
75
- const rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
76
- const baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
77
- const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
75
+ let rootFiles;
76
+ let baseOptions;
77
+ let diagnosticFilter;
78
+ let tsBuildInfoFile;
79
+ if (info.pkgDir != null && info.env != null) {
80
+ rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
81
+ baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
82
+ const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
83
+ diagnosticFilter = (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix);
84
+ const shouldEmit2 = info.emit !== false;
85
+ tsBuildInfoFile = path.join(
86
+ info.pkgDir,
87
+ ".cache",
88
+ shouldEmit2 ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`
89
+ );
90
+ } else {
91
+ const packagesPrefix = path.join(info.cwd, "packages") + path.sep;
92
+ rootFiles = parsedConfig.fileNames.filter((f) => !f.startsWith(packagesPrefix));
93
+ baseOptions = parsedConfig.options;
94
+ diagnosticFilter = (d) => d.file == null || !d.file.fileName.startsWith(packagesPrefix);
95
+ tsBuildInfoFile = path.join(info.cwd, ".cache", "typecheck-root.tsbuildinfo");
96
+ }
78
97
  const shouldEmit = info.emit !== false;
79
98
  const options = {
80
99
  ...baseOptions,
81
100
  sourceMap: false,
82
101
  incremental: true,
83
- tsBuildInfoFile: path.join(
84
- info.pkgDir,
85
- ".cache",
86
- shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`
87
- )
102
+ tsBuildInfoFile
88
103
  };
89
- if (shouldEmit) {
104
+ if (shouldEmit && info.pkgDir != null) {
90
105
  options.noEmit = false;
91
106
  options.emitDeclarationOnly = true;
92
107
  options.declaration = true;
@@ -100,7 +115,7 @@ async function buildDts(info) {
100
115
  options.declarationMap = false;
101
116
  }
102
117
  const host = ts.createIncrementalCompilerHost(options);
103
- if (shouldEmit) {
118
+ if (shouldEmit && info.pkgDir != null) {
104
119
  const rewritePath = createDtsPathRewriter(info.pkgDir);
105
120
  const originalWriteFile = host.writeFile;
106
121
  host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
@@ -124,9 +139,7 @@ async function buildDts(info) {
124
139
  ...program.getSemanticDiagnostics(),
125
140
  ...emitResult.diagnostics
126
141
  ];
127
- const filteredDiagnostics = allDiagnostics.filter(
128
- (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix)
129
- );
142
+ const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
130
143
  const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
131
144
  const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
132
145
  const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/workers/dts.worker.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["shouldEmit"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"library.worker.d.ts","sourceRoot":"","sources":["../../src/workers/library.worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAoDD;;GAEG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+BxE;AAKD;;;;GAIG;AACH,iBAAe,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE/D;AAED;;;GAGG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;AAED,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAMjF,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"library.worker.d.ts","sourceRoot":"","sources":["../../src/workers/library.worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAwDD;;GAEG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+BxE;AAmED;;;;GAIG;AACH,iBAAe,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD/D;AAED;;;GAGG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;AAED,QAAA,MAAM,MAAM;;;eACD,OAAO,KAAK;oBAAc,OAAO,UAAU;mBAAa,OAAO,SAAS;;;CAMjF,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -1,16 +1,18 @@
1
+ import path from "path";
1
2
  import esbuild from "esbuild";
2
- import { createWorker } from "@simplysm/core-node";
3
+ import { createWorker, FsWatcher } from "@simplysm/core-node";
3
4
  import { consola } from "consola";
4
5
  import { parseRootTsconfig, getPackageSourceFiles, getCompilerOptionsForPackage } from "../utils/tsconfig.js";
5
6
  import { createLibraryEsbuildOptions, getTypecheckEnvFromTarget } from "../utils/esbuild-config.js";
6
7
  const logger = consola.withTag("sd:cli:library:worker");
7
8
  let esbuildContext;
9
+ let fsWatcher;
8
10
  async function cleanup() {
9
11
  const contextToDispose = esbuildContext;
10
12
  esbuildContext = void 0;
11
- if (contextToDispose != null) {
12
- await contextToDispose.dispose();
13
- }
13
+ const watcherToClose = fsWatcher;
14
+ fsWatcher = void 0;
15
+ await Promise.all([contextToDispose?.dispose(), watcherToClose?.close()]);
14
16
  }
15
17
  process.on("SIGTERM", () => {
16
18
  cleanup().catch((err) => {
@@ -52,52 +54,79 @@ async function build(info) {
52
54
  }
53
55
  }
54
56
  let isWatchStarted = false;
57
+ async function createAndBuildContext(pkgDir, cwd, config, isFirstBuild, resolveFirstBuild) {
58
+ const parsedConfig = parseRootTsconfig(cwd);
59
+ const entryPoints = getPackageSourceFiles(pkgDir, parsedConfig);
60
+ const env = getTypecheckEnvFromTarget(config.target);
61
+ const compilerOptions = await getCompilerOptionsForPackage(parsedConfig.options, env, pkgDir);
62
+ const baseOptions = createLibraryEsbuildOptions({
63
+ pkgDir,
64
+ entryPoints,
65
+ target: config.target,
66
+ compilerOptions
67
+ });
68
+ let isBuildFirstTime = isFirstBuild;
69
+ const context = await esbuild.context({
70
+ ...baseOptions,
71
+ plugins: [
72
+ ...baseOptions.plugins ?? [],
73
+ {
74
+ name: "watch-notify",
75
+ setup(pluginBuild) {
76
+ pluginBuild.onStart(() => {
77
+ sender.send("buildStart", {});
78
+ });
79
+ pluginBuild.onEnd((result) => {
80
+ const errors = result.errors.map((e) => e.text);
81
+ const success = result.errors.length === 0;
82
+ sender.send("build", { success, errors: errors.length > 0 ? errors : void 0 });
83
+ if (isBuildFirstTime) {
84
+ isBuildFirstTime = false;
85
+ resolveFirstBuild?.();
86
+ }
87
+ });
88
+ }
89
+ }
90
+ ]
91
+ });
92
+ await context.rebuild();
93
+ return context;
94
+ }
55
95
  async function startWatch(info) {
56
96
  if (isWatchStarted) {
57
97
  throw new Error("startWatch\uB294 Worker\uB2F9 \uD55C \uBC88\uB9CC \uD638\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.");
58
98
  }
59
99
  isWatchStarted = true;
60
100
  try {
61
- const parsedConfig = parseRootTsconfig(info.cwd);
62
- const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
63
- const env = getTypecheckEnvFromTarget(info.config.target);
64
- const compilerOptions = await getCompilerOptionsForPackage(parsedConfig.options, env, info.pkgDir);
65
101
  let resolveFirstBuild;
66
102
  const firstBuildPromise = new Promise((resolve) => {
67
103
  resolveFirstBuild = resolve;
68
104
  });
69
- let isFirstBuild = true;
70
- const baseOptions = createLibraryEsbuildOptions({
71
- pkgDir: info.pkgDir,
72
- entryPoints,
73
- target: info.config.target,
74
- compilerOptions
75
- });
76
- esbuildContext = await esbuild.context({
77
- ...baseOptions,
78
- plugins: [
79
- ...baseOptions.plugins ?? [],
80
- {
81
- name: "watch-notify",
82
- setup(pluginBuild) {
83
- pluginBuild.onStart(() => {
84
- sender.send("buildStart", {});
85
- });
86
- pluginBuild.onEnd((result) => {
87
- const errors = result.errors.map((e) => e.text);
88
- const success = result.errors.length === 0;
89
- sender.send("build", { success, errors: errors.length > 0 ? errors : void 0 });
90
- if (isFirstBuild) {
91
- isFirstBuild = false;
92
- resolveFirstBuild();
93
- }
94
- });
105
+ esbuildContext = await createAndBuildContext(info.pkgDir, info.cwd, info.config, true, resolveFirstBuild);
106
+ await firstBuildPromise;
107
+ const srcPattern = path.join(info.pkgDir, "src", "**", "*.{ts,tsx}");
108
+ fsWatcher = await FsWatcher.watch([srcPattern]);
109
+ fsWatcher.onChange({ delay: 300 }, async (changes) => {
110
+ try {
111
+ const hasAddOrUnlink = changes.some((c) => c.event === "add" || c.event === "unlink");
112
+ if (hasAddOrUnlink) {
113
+ logger.debug("\uD30C\uC77C \uCD94\uAC00/\uC0AD\uC81C \uAC10\uC9C0, context \uC7AC\uC0DD\uC131");
114
+ const oldContext = esbuildContext;
115
+ esbuildContext = await createAndBuildContext(info.pkgDir, info.cwd, info.config, false);
116
+ if (oldContext != null) {
117
+ await oldContext.dispose();
118
+ }
119
+ } else {
120
+ if (esbuildContext != null) {
121
+ await esbuildContext.rebuild();
95
122
  }
96
123
  }
97
- ]
124
+ } catch (err) {
125
+ sender.send("error", {
126
+ message: err instanceof Error ? err.message : String(err)
127
+ });
128
+ }
98
129
  });
99
- await esbuildContext.watch();
100
- await firstBuildPromise;
101
130
  } catch (err) {
102
131
  sender.send("error", {
103
132
  message: err instanceof Error ? err.message : String(err)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/workers/library.worker.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
3
  "sideEffects": false,
4
- "version": "13.0.0-beta.50",
4
+ "version": "13.0.1",
5
5
  "description": "심플리즘 패키지 - CLI 도구",
6
6
  "author": "김석래",
7
7
  "repository": {
@@ -44,9 +44,9 @@
44
44
  "vite-plugin-solid": "^2.11.10",
45
45
  "vite-tsconfig-paths": "^6.1.0",
46
46
  "yargs": "^18.0.0",
47
- "@simplysm/core-common": "13.0.0-beta.50",
48
- "@simplysm/core-node": "13.0.0-beta.50",
49
- "@simplysm/storage": "13.0.0-beta.50"
47
+ "@simplysm/core-common": "13.0.1",
48
+ "@simplysm/core-node": "13.0.1",
49
+ "@simplysm/storage": "13.0.1"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/semver": "^7.7.1",
@@ -0,0 +1,27 @@
1
+ import { consola } from "consola";
2
+ import { loadSdConfig } from "../utils/sd-config";
3
+ import { setupReplaceDeps } from "../utils/replace-deps";
4
+
5
+ /**
6
+ * replace-deps 명령 옵션
7
+ */
8
+ export interface ReplaceDepsOptions {
9
+ /** sd.config.ts에 전달할 추가 옵션 */
10
+ options: string[];
11
+ }
12
+
13
+ /**
14
+ * sd.config.ts의 replaceDeps 설정에 따라 node_modules 패키지를 로컬 소스로 symlink 교체한다.
15
+ */
16
+ export async function runReplaceDeps(opts: ReplaceDepsOptions): Promise<void> {
17
+ const cwd = process.cwd();
18
+
19
+ const sdConfig = await loadSdConfig({ cwd, dev: false, opt: opts.options });
20
+
21
+ if (sdConfig.replaceDeps == null) {
22
+ consola.warn("sd.config.ts에 replaceDeps 설정이 없습니다.");
23
+ return;
24
+ }
25
+
26
+ await setupReplaceDeps(cwd, sdConfig.replaceDeps);
27
+ }
@@ -95,14 +95,29 @@ export function extractPackages(fileNames: string[], cwd: string, config: SdConf
95
95
  return packages;
96
96
  }
97
97
 
98
+ /**
99
+ * tsconfig 파일 목록에서 packages/ 하위가 아닌 파일이 있는지 확인합니다.
100
+ */
101
+ function hasNonPackageFiles(fileNames: string[], cwd: string): boolean {
102
+ return fileNames.some((f) => {
103
+ const relativePath = pathPosix(path.relative(cwd, f));
104
+ return !relativePath.startsWith("packages/");
105
+ });
106
+ }
107
+
98
108
  /**
99
109
  * 패키지 정보로부터 타입체크 작업 목록을 생성합니다.
100
110
  * neutral 패키지는 node/browser 두 환경으로 분리하여 각각 체크합니다.
101
111
  * @param packages 패키지 정보 맵
102
112
  * @param cwd 현재 작업 디렉토리
113
+ * @param includeNonPackage non-package 파일이 있으면 "기타" 작업 추가
103
114
  * @returns 타입체크 작업 정보 배열
104
115
  */
105
- function createTypecheckTasks(packages: Map<string, PackageInfo>, cwd: string): TypecheckTask[] {
116
+ function createTypecheckTasks(
117
+ packages: Map<string, PackageInfo>,
118
+ cwd: string,
119
+ includeNonPackage: boolean,
120
+ ): TypecheckTask[] {
106
121
  const tasks: TypecheckTask[] = [];
107
122
 
108
123
  // packages/* - 각 env마다 별도 task 생성
@@ -122,6 +137,18 @@ function createTypecheckTasks(packages: Map<string, PackageInfo>, cwd: string):
122
137
  }
123
138
  }
124
139
 
140
+ // non-package 파일 (tests/, 루트 *.ts 등)
141
+ if (includeNonPackage) {
142
+ tasks.push({
143
+ displayName: "기타",
144
+ buildInfo: {
145
+ name: "root",
146
+ cwd,
147
+ emit: false,
148
+ },
149
+ });
150
+ }
151
+
125
152
  return tasks;
126
153
  }
127
154
 
@@ -193,10 +220,11 @@ export async function runTypecheck(options: TypecheckOptions): Promise<void> {
193
220
  });
194
221
 
195
222
  // 타입체크 작업 생성
196
- const tasks = createTypecheckTasks(packages, cwd);
223
+ const nonPackage = hasNonPackageFiles(fileNames, cwd);
224
+ const tasks = createTypecheckTasks(packages, cwd, nonPackage);
197
225
 
198
226
  if (tasks.length === 0) {
199
- process.stdout.write("✔ 타입체크할 패키지가 없습니다.\n");
227
+ process.stdout.write("✔ 타입체크할 대상이 없습니다.\n");
200
228
  return;
201
229
  }
202
230
 
package/src/sd-cli.ts CHANGED
@@ -10,6 +10,7 @@ import { runWatch } from "./commands/watch";
10
10
  import { runDev } from "./commands/dev";
11
11
  import { runBuild } from "./commands/build";
12
12
  import { runPublish } from "./commands/publish";
13
+ import { runReplaceDeps } from "./commands/replace-deps";
13
14
  import { runDevice } from "./commands/device";
14
15
  import path from "path";
15
16
  import fs from "fs";
@@ -295,6 +296,28 @@ export function createCliParser(argv: string[]): Argv {
295
296
  });
296
297
  },
297
298
  )
299
+ .command(
300
+ "replace-deps",
301
+ "sd.config.ts의 replaceDeps 설정에 따라 node_modules 패키지를 로컬 소스로 symlink 교체한다.",
302
+ (cmd) =>
303
+ cmd
304
+ .version(false)
305
+ .hide("help")
306
+ .options({
307
+ options: {
308
+ type: "string",
309
+ array: true,
310
+ alias: "o",
311
+ description: "sd.config.ts에 전달할 옵션 (예: -o key=value)",
312
+ default: [] as string[],
313
+ },
314
+ }),
315
+ async (args) => {
316
+ await runReplaceDeps({
317
+ options: args.options,
318
+ });
319
+ },
320
+ )
298
321
  .demandCommand(1, "명령어를 지정해주세요.")
299
322
  .strict();
300
323
  }
@@ -28,8 +28,10 @@ export interface DtsWatchInfo {
28
28
  export interface DtsBuildInfo {
29
29
  name: string;
30
30
  cwd: string;
31
- pkgDir: string;
32
- env: TypecheckEnv;
31
+ /** 패키지 디렉토리. 미지정 시 non-package 모드 (packages/ 제외 전체 타입체크) */
32
+ pkgDir?: string;
33
+ /** 타입체크 환경. pkgDir과 함께 사용 */
34
+ env?: TypecheckEnv;
33
35
  /** true면 .d.ts 생성 + 타입체크, false면 타입체크만 (기본값: true) */
34
36
  emit?: boolean;
35
37
  }
@@ -180,11 +182,33 @@ function createDtsPathRewriter(pkgDir: string): (fileName: string, content: stri
180
182
  async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
181
183
  try {
182
184
  const parsedConfig = parseRootTsconfig(info.cwd);
183
- const rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
184
- const baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
185
185
 
186
- // 해당 패키지 경로 (필터링용)
187
- const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
186
+ let rootFiles: string[];
187
+ let baseOptions: ts.CompilerOptions;
188
+ let diagnosticFilter: (d: ts.Diagnostic) => boolean;
189
+ let tsBuildInfoFile: string;
190
+
191
+ if (info.pkgDir != null && info.env != null) {
192
+ // 패키지 모드 (기존 동작)
193
+ rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
194
+ baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
195
+ const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
196
+ diagnosticFilter = (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix);
197
+
198
+ const shouldEmit = info.emit !== false;
199
+ tsBuildInfoFile = path.join(
200
+ info.pkgDir,
201
+ ".cache",
202
+ shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`,
203
+ );
204
+ } else {
205
+ // non-package 모드: packages/ 제외한 나머지 파일 타입체크
206
+ const packagesPrefix = path.join(info.cwd, "packages") + path.sep;
207
+ rootFiles = parsedConfig.fileNames.filter((f) => !f.startsWith(packagesPrefix));
208
+ baseOptions = parsedConfig.options;
209
+ diagnosticFilter = (d) => d.file == null || !d.file.fileName.startsWith(packagesPrefix);
210
+ tsBuildInfoFile = path.join(info.cwd, ".cache", "typecheck-root.tsbuildinfo");
211
+ }
188
212
 
189
213
  // emit 여부 결정 (기본값: true)
190
214
  const shouldEmit = info.emit !== false;
@@ -193,16 +217,12 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
193
217
  ...baseOptions,
194
218
  sourceMap: false,
195
219
  incremental: true,
196
- tsBuildInfoFile: path.join(
197
- info.pkgDir,
198
- ".cache",
199
- shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`,
200
- ),
220
+ tsBuildInfoFile,
201
221
  };
202
222
 
203
223
  // emit 여부에 따라 관련 옵션 설정
204
- if (shouldEmit) {
205
- // dts 생성 + 타입체크
224
+ if (shouldEmit && info.pkgDir != null) {
225
+ // dts 생성 + 타입체크 (패키지 모드에서만)
206
226
  options.noEmit = false;
207
227
  options.emitDeclarationOnly = true;
208
228
  options.declaration = true;
@@ -222,7 +242,7 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
222
242
  const host = ts.createIncrementalCompilerHost(options);
223
243
 
224
244
  // 현재 패키지의 .d.ts만 flat 경로로 출력 (다른 패키지 .d.ts 생성 방지 + 중첩 경로 재작성)
225
- if (shouldEmit) {
245
+ if (shouldEmit && info.pkgDir != null) {
226
246
  const rewritePath = createDtsPathRewriter(info.pkgDir);
227
247
  const originalWriteFile = host.writeFile;
228
248
  host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
@@ -253,9 +273,7 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
253
273
  ];
254
274
 
255
275
  // 해당 패키지 src 폴더 내 파일만 에러 수집 (다른 패키지 에러 무시)
256
- const filteredDiagnostics = allDiagnostics.filter(
257
- (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix),
258
- );
276
+ const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
259
277
 
260
278
  const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
261
279
  const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
@@ -1,5 +1,6 @@
1
+ import path from "path";
1
2
  import esbuild from "esbuild";
2
- import { createWorker } from "@simplysm/core-node";
3
+ import { createWorker, FsWatcher } from "@simplysm/core-node";
3
4
  import { consola } from "consola";
4
5
  import type { SdBuildPackageConfig } from "../sd-config.types";
5
6
  import { parseRootTsconfig, getPackageSourceFiles, getCompilerOptionsForPackage } from "../utils/tsconfig";
@@ -68,6 +69,9 @@ const logger = consola.withTag("sd:cli:library:worker");
68
69
  /** esbuild build context (정리 대상) */
69
70
  let esbuildContext: esbuild.BuildContext | undefined;
70
71
 
72
+ /** FsWatcher (정리 대상) */
73
+ let fsWatcher: FsWatcher | undefined;
74
+
71
75
  /**
72
76
  * 리소스 정리
73
77
  */
@@ -77,9 +81,10 @@ async function cleanup(): Promise<void> {
77
81
  const contextToDispose = esbuildContext;
78
82
  esbuildContext = undefined;
79
83
 
80
- if (contextToDispose != null) {
81
- await contextToDispose.dispose();
82
- }
84
+ const watcherToClose = fsWatcher;
85
+ fsWatcher = undefined;
86
+
87
+ await Promise.all([contextToDispose?.dispose(), watcherToClose?.close()]);
83
88
  }
84
89
 
85
90
  // 프로세스 종료 전 리소스 정리 (SIGTERM/SIGINT)
@@ -148,6 +153,68 @@ async function build(info: LibraryBuildInfo): Promise<LibraryBuildResult> {
148
153
  /** startWatch 호출 여부 플래그 */
149
154
  let isWatchStarted = false;
150
155
 
156
+ /**
157
+ * esbuild context 생성 및 초기 빌드 수행
158
+ */
159
+ async function createAndBuildContext(
160
+ pkgDir: string,
161
+ cwd: string,
162
+ config: SdBuildPackageConfig,
163
+ isFirstBuild: boolean,
164
+ resolveFirstBuild?: () => void,
165
+ ): Promise<esbuild.BuildContext> {
166
+ // tsconfig 파싱
167
+ const parsedConfig = parseRootTsconfig(cwd);
168
+ const entryPoints = getPackageSourceFiles(pkgDir, parsedConfig);
169
+
170
+ // 타겟별 compilerOptions 생성
171
+ const env = getTypecheckEnvFromTarget(config.target);
172
+ const compilerOptions = await getCompilerOptionsForPackage(parsedConfig.options, env, pkgDir);
173
+
174
+ // esbuild 옵션 생성
175
+ const baseOptions = createLibraryEsbuildOptions({
176
+ pkgDir,
177
+ entryPoints,
178
+ target: config.target,
179
+ compilerOptions,
180
+ });
181
+
182
+ let isBuildFirstTime = isFirstBuild;
183
+
184
+ // context 생성 + watch-notify 플러그인 추가
185
+ const context = await esbuild.context({
186
+ ...baseOptions,
187
+ plugins: [
188
+ ...(baseOptions.plugins ?? []),
189
+ {
190
+ name: "watch-notify",
191
+ setup(pluginBuild) {
192
+ pluginBuild.onStart(() => {
193
+ sender.send("buildStart", {});
194
+ });
195
+
196
+ pluginBuild.onEnd((result) => {
197
+ const errors = result.errors.map((e) => e.text);
198
+ const success = result.errors.length === 0;
199
+
200
+ sender.send("build", { success, errors: errors.length > 0 ? errors : undefined });
201
+
202
+ if (isBuildFirstTime) {
203
+ isBuildFirstTime = false;
204
+ resolveFirstBuild?.();
205
+ }
206
+ });
207
+ },
208
+ },
209
+ ],
210
+ });
211
+
212
+ // 초기 빌드
213
+ await context.rebuild();
214
+
215
+ return context;
216
+ }
217
+
151
218
  /**
152
219
  * watch 시작
153
220
  * @remarks 이 함수는 Worker당 한 번만 호출되어야 합니다.
@@ -160,62 +227,50 @@ async function startWatch(info: LibraryWatchInfo): Promise<void> {
160
227
  isWatchStarted = true;
161
228
 
162
229
  try {
163
- // tsconfig 파싱
164
- const parsedConfig = parseRootTsconfig(info.cwd);
165
- const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
166
-
167
- // 타겟별 compilerOptions 생성
168
- const env = getTypecheckEnvFromTarget(info.config.target);
169
- const compilerOptions = await getCompilerOptionsForPackage(parsedConfig.options, env, info.pkgDir);
170
-
171
230
  // 첫 번째 빌드 완료 대기를 위한 Promise
172
231
  let resolveFirstBuild!: () => void;
173
232
  const firstBuildPromise = new Promise<void>((resolve) => {
174
233
  resolveFirstBuild = resolve;
175
234
  });
176
235
 
177
- let isFirstBuild = true;
178
-
179
- // esbuild 기본 옵션 생성
180
- const baseOptions = createLibraryEsbuildOptions({
181
- pkgDir: info.pkgDir,
182
- entryPoints,
183
- target: info.config.target,
184
- compilerOptions,
185
- });
186
-
187
- // watch용 플러그인 추가
188
- esbuildContext = await esbuild.context({
189
- ...baseOptions,
190
- plugins: [
191
- ...(baseOptions.plugins ?? []),
192
- {
193
- name: "watch-notify",
194
- setup(pluginBuild) {
195
- pluginBuild.onStart(() => {
196
- sender.send("buildStart", {});
197
- });
198
-
199
- pluginBuild.onEnd((result) => {
200
- const errors = result.errors.map((e) => e.text);
201
- const success = result.errors.length === 0;
202
-
203
- sender.send("build", { success, errors: errors.length > 0 ? errors : undefined });
204
-
205
- if (isFirstBuild) {
206
- isFirstBuild = false;
207
- resolveFirstBuild();
208
- }
209
- });
210
- },
211
- },
212
- ],
213
- });
214
-
215
- await esbuildContext.watch();
236
+ // 초기 esbuild context 생성 및 빌드
237
+ esbuildContext = await createAndBuildContext(info.pkgDir, info.cwd, info.config, true, resolveFirstBuild);
216
238
 
217
239
  // 첫 번째 빌드 완료 대기
218
240
  await firstBuildPromise;
241
+
242
+ // FsWatcher 시작 (src/**/*.{ts,tsx} 감시)
243
+ const srcPattern = path.join(info.pkgDir, "src", "**", "*.{ts,tsx}");
244
+ fsWatcher = await FsWatcher.watch([srcPattern]);
245
+
246
+ // 파일 변경 감지 시 처리
247
+ fsWatcher.onChange({ delay: 300 }, async (changes) => {
248
+ try {
249
+ // add 또는 unlink 이벤트가 있는지 확인
250
+ const hasAddOrUnlink = changes.some((c) => c.event === "add" || c.event === "unlink");
251
+
252
+ if (hasAddOrUnlink) {
253
+ // entry points 변경이 있으므로 context 재생성
254
+ logger.debug("파일 추가/삭제 감지, context 재생성");
255
+
256
+ const oldContext = esbuildContext;
257
+ esbuildContext = await createAndBuildContext(info.pkgDir, info.cwd, info.config, false);
258
+
259
+ if (oldContext != null) {
260
+ await oldContext.dispose();
261
+ }
262
+ } else {
263
+ // 파일 내용만 변경 (change 이벤트)
264
+ if (esbuildContext != null) {
265
+ await esbuildContext.rebuild();
266
+ }
267
+ }
268
+ } catch (err) {
269
+ sender.send("error", {
270
+ message: err instanceof Error ? err.message : String(err),
271
+ });
272
+ }
273
+ });
219
274
  } catch (err) {
220
275
  sender.send("error", {
221
276
  message: err instanceof Error ? err.message : String(err),
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
7
- "@simplysm/solid": "~13.0.0-beta.50",
7
+ "@simplysm/solid": "~13.0.1",
8
8
  {{#if router}}
9
9
  "@solidjs/router": "^0.15.4",
10
10
  {{/if}}
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
7
- "@simplysm/core-common": "~13.0.0-beta.50",
8
- "@simplysm/service-server": "~13.0.0-beta.50"
7
+ "@simplysm/core-common": "~13.0.1",
8
+ "@simplysm/service-server": "~13.0.1"
9
9
  }
10
10
  }
@@ -1,7 +1,7 @@
1
1
  import { env } from "@simplysm/core-common";
2
- import { ServiceServer } from "@simplysm/service-server";
2
+ import { createServiceServer } from "@simplysm/service-server";
3
3
 
4
- export const server = new ServiceServer({
4
+ export const server = createServiceServer({
5
5
  rootPath: process.cwd(),
6
6
  port: {{port}},
7
7
  services: [],
@@ -15,9 +15,9 @@
15
15
  "vitest": "vitest"
16
16
  },
17
17
  "devDependencies": {
18
- "@simplysm/sd-cli": "~13.0.0-beta.50",
19
- "@simplysm/claude": "~13.0.0-beta.50",
20
- "@simplysm/eslint-plugin": "~13.0.0-beta.50",
18
+ "@simplysm/sd-cli": "~13.0.1",
19
+ "@simplysm/claude": "~13.0.1",
20
+ "@simplysm/eslint-plugin": "~13.0.1",
21
21
  "@types/node": "^20.19.33",
22
22
  "eslint": "^9.39.2",
23
23
  "prettier": "^3.8.1",