@simplysm/sd-cli 14.0.12 → 14.0.14

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.
Files changed (46) hide show
  1. package/dist/angular/vite-angular-plugin.d.ts +5 -1
  2. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  3. package/dist/angular/vite-angular-plugin.js +19 -7
  4. package/dist/angular/vite-angular-plugin.js.map +1 -1
  5. package/dist/capacitor/capacitor.d.ts +10 -4
  6. package/dist/capacitor/capacitor.d.ts.map +1 -1
  7. package/dist/capacitor/capacitor.js +39 -19
  8. package/dist/capacitor/capacitor.js.map +1 -1
  9. package/dist/commands/publish.d.ts.map +1 -1
  10. package/dist/commands/publish.js +7 -1
  11. package/dist/commands/publish.js.map +1 -1
  12. package/dist/engines/ViteEngine.d.ts +8 -2
  13. package/dist/engines/ViteEngine.d.ts.map +1 -1
  14. package/dist/engines/ViteEngine.js +10 -2
  15. package/dist/engines/ViteEngine.js.map +1 -1
  16. package/dist/engines/index.d.ts +4 -0
  17. package/dist/engines/index.d.ts.map +1 -1
  18. package/dist/engines/index.js +2 -0
  19. package/dist/engines/index.js.map +1 -1
  20. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  21. package/dist/orchestrators/BuildOrchestrator.js +8 -40
  22. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  23. package/dist/sd-config.types.d.ts +2 -0
  24. package/dist/sd-config.types.d.ts.map +1 -1
  25. package/dist/utils/vite-config.d.ts +6 -0
  26. package/dist/utils/vite-config.d.ts.map +1 -1
  27. package/dist/utils/vite-config.js +81 -27
  28. package/dist/utils/vite-config.js.map +1 -1
  29. package/dist/workers/client.worker.d.ts +6 -0
  30. package/dist/workers/client.worker.d.ts.map +1 -1
  31. package/dist/workers/client.worker.js +12 -8
  32. package/dist/workers/client.worker.js.map +1 -1
  33. package/package.json +6 -5
  34. package/src/angular/vite-angular-plugin.ts +28 -8
  35. package/src/capacitor/capacitor.ts +47 -25
  36. package/src/engines/ViteEngine.ts +14 -2
  37. package/src/engines/index.ts +6 -0
  38. package/src/orchestrators/BuildOrchestrator.ts +8 -40
  39. package/src/sd-config.types.ts +2 -0
  40. package/src/utils/vite-config.ts +96 -33
  41. package/src/workers/client.worker.ts +18 -8
  42. package/tests/capacitor/capacitor-build.spec.ts +87 -7
  43. package/tests/capacitor/capacitor-init.spec.ts +9 -5
  44. package/tests/orchestrators/build-orchestrator.spec.ts +7 -145
  45. package/tests/utils/vite-config.spec.ts +120 -3
  46. package/tests/workers/client-worker.spec.ts +2 -1
@@ -126,6 +126,7 @@ async function startWatch(info) {
126
126
  const polyfillsPath = path.join(info.pkgDir, "src", "polyfills.ts");
127
127
  const polyfills = fs.existsSync(polyfillsPath) ? ["./src/polyfills.ts"] : undefined;
128
128
  const viteConfig = await createClientViteConfig({
129
+ framework: info.framework,
129
130
  pkgDir: info.pkgDir,
130
131
  pkgName,
131
132
  mode: "dev",
@@ -162,7 +163,7 @@ async function startWatch(info) {
162
163
  }
163
164
  sender.send("serverReady", { port: actualPort });
164
165
  // .config.json 생성
165
- writeConfigJson(info.pkgDir, info.configs);
166
+ writeConfigJson(path.join(info.pkgDir, "dist"), info.configs);
166
167
  return { success: true };
167
168
  }
168
169
  catch (err) {
@@ -186,9 +187,10 @@ async function startLegacyWatch(info) {
186
187
  const polyfillsPath = path.join(info.pkgDir, "src", "polyfills.ts");
187
188
  const polyfills = fs.existsSync(polyfillsPath) ? ["./src/polyfills.ts"] : undefined;
188
189
  const viteConfig = await createClientViteConfig({
190
+ framework: info.framework,
189
191
  pkgDir: info.pkgDir,
190
192
  pkgName,
191
- mode: "build",
193
+ mode: "dev",
192
194
  tsconfigPath,
193
195
  serverPort: 0,
194
196
  env: info.env,
@@ -208,7 +210,7 @@ async function startLegacyWatch(info) {
208
210
  const watcher = (await viteBuild(viteConfig));
209
211
  rollupWatcher = watcher;
210
212
  // .config.json 생성
211
- writeConfigJson(info.pkgDir, info.configs);
213
+ writeConfigJson(path.join(info.pkgDir, "dist"), info.configs);
212
214
  // HTTP 정적 파일 서버 시작
213
215
  const name = pkgName.replace(/^@[^/]+\//, "");
214
216
  const basePath = `/${name}/`;
@@ -304,6 +306,7 @@ async function build(info) {
304
306
  const polyfills = fs.existsSync(polyfillsPath) ? ["./src/polyfills.ts"] : undefined;
305
307
  let lintResult;
306
308
  const viteConfig = await createClientViteConfig({
309
+ framework: info.framework,
307
310
  pkgDir: info.pkgDir,
308
311
  pkgName,
309
312
  mode: "build",
@@ -322,10 +325,12 @@ async function build(info) {
322
325
  polyfills,
323
326
  pwa: info.pwa,
324
327
  exclude: info.exclude,
328
+ outDir: info.outDir,
329
+ base: info.base,
325
330
  });
326
331
  await viteBuild(viteConfig);
327
- // .config.json 생성
328
- writeConfigJson(info.pkgDir, info.configs);
332
+ // .config.json 생성 (항상 dist/에 기록 — outDir과 무관)
333
+ writeConfigJson(path.join(info.pkgDir, "dist"), info.configs);
329
334
  logger.debug(`[${info.name}] client worker build 완료`);
330
335
  return { success: true, lint: lintResult };
331
336
  }
@@ -335,9 +340,8 @@ async function build(info) {
335
340
  return { success: false, errors: [message] };
336
341
  }
337
342
  }
338
- /** dist/.config.json 생성 */
339
- function writeConfigJson(pkgDir, configs) {
340
- const distDir = path.join(pkgDir, "dist");
343
+ /** .config.json 생성 */
344
+ function writeConfigJson(distDir, configs) {
341
345
  fs.mkdirSync(distDir, { recursive: true });
342
346
  fs.writeFileSync(path.join(distDir, ".config.json"), JSON.stringify(configs ?? {}, undefined, 2));
343
347
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.worker.js","sourceRoot":"","sources":["../../src/workers/client.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,SAAS,EAAsB,MAAM,MAAM,CAAC;AAC5E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,eAAe,EAAE,CAAC;AA4ClB,YAAY;AAEZ,gBAAgB;AAEhB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAQvD,IAAI,UAAqC,CAAC;AAC1C,IAAI,aAAwC,CAAC;AAC7C,IAAI,gBAAyC,CAAC;AAE9C,sCAAsC;AACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;AAElD,wCAAwC;AACxC,SAAS,gBAAgB;IACvB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAGD,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,qHAAqH,CAAC;AAEjJ;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,GAAG,kBAAkB,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,OAAe,EAAE,QAAgB;IAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3C,qBAAqB;QACrB,IAAI,YAAoB,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,KAAK,eAAe,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YAC1E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;YAChD,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;QAED,YAAY;QACZ,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,WAAW;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;YACpE,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,4BAA4B;gBAC5B,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAqB;IAI/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CACjD,CAAC,IAAI,CAAC;IACP,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,IAAqB;IAC7C,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,wCAAwC,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3D,qBAAqB;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,IAAI,EAAE,KAAK;YACX,YAAY;YACZ,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;YAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,SAAS;YACT,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;QACjD,UAAU,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAErD,WAAW;QACX,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;QACjD,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5E,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;gBACnB,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,iCAAiC,CAAC;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEjD,kBAAkB;QAClB,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAqB;IACnD,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3D,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,qBAAqB;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,IAAI,EAAE,OAAO;YACb,YAAY;YACZ,UAAU,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,SAAS;YACT,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAkB,CAAC;QAC/D,aAAa,GAAG,OAAO,CAAC;QAExB,kBAAkB;QAClB,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3C,mBAAmB;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,gBAAgB,GAAG,UAAU,CAAC;QAE9B,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;gBAChD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEjD,aAAa;QACb,OAAO,MAAM,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;YACtD,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAE/B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAoD,EAAE,EAAE;gBAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,4BAA4B;wBAC5B,gBAAgB,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,qBAAqB,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,aAAa,CAAC;IACrC,aAAa,GAAG,SAAS,CAAC;IAC1B,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe;IACf,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;IAC3C,gBAAgB,GAAG,SAAS,CAAC;IAC7B,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,GAAG,IAAI,IAAI;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBACxB,OAAO,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC;IACjC,UAAU,GAAG,SAAS,CAAC;IACvB,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,KAAK,CAAC,IAAqB;IACxC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE3D,qBAAqB;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,IAAI,UAA6C,CAAC;QAElD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;YACP,IAAI,EAAE,OAAO;YACb,YAAY;YACZ,UAAU,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO;YACrD,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY;YAC/C,SAAS;YACT,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAE5B,kBAAkB;QAClB,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,SAAS,eAAe,CACtB,MAAc,EACd,OAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,uBAAuB,CAAC,KAAK,IAAI,EAAE;IACjC,MAAM,SAAS,EAAE,CAAC;AACpB,CAAC,EAAE,MAAM,CAAC,CAAC;AAEX,MAAM,MAAM,GAAG,YAAY,CAOzB,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;AAEpC,eAAe,MAAM,CAAC;AAEtB,YAAY"}
1
+ {"version":3,"file":"client.worker.js","sourceRoot":"","sources":["../../src/workers/client.worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.0.12",
3
+ "version": "14.0.14",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -41,14 +41,15 @@
41
41
  "vite-plugin-pwa": "^1.2.0",
42
42
  "vite-tsconfig-paths": "^6.1.1",
43
43
  "yargs": "^18.0.0",
44
- "@simplysm/core-node": "14.0.12",
45
- "@simplysm/storage": "14.0.12",
46
- "@simplysm/core-common": "14.0.12"
44
+ "@simplysm/core-common": "14.0.14",
45
+ "@simplysm/storage": "14.0.14",
46
+ "@simplysm/core-node": "14.0.14"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/semver": "^7.7.1",
50
50
  "@types/ssh2": "^1.15.5",
51
- "@types/yargs": "^17.0.35"
51
+ "@types/yargs": "^17.0.35",
52
+ "vite-plugin-solid": "^2.11.11"
52
53
  },
53
54
  "bin": {
54
55
  "sd-cli": "./dist/sd-cli.js"
@@ -10,6 +10,7 @@ import {
10
10
  AngularCompiler,
11
11
  AngularSourceFileCache,
12
12
  } from "../utils/angular-compiler.js";
13
+ import { getPackageSourceFiles } from "../utils/tsconfig.js";
13
14
  import { createClientTransformStylesheet } from "./client-transform-stylesheet.js";
14
15
  import {
15
16
  LintWithProgramRunner,
@@ -23,8 +24,12 @@ const logger = consola.withTag("sd:cli:angular");
23
24
  export interface SdAngularPluginOptions {
24
25
  /** tsconfig.json 경로 */
25
26
  tsconfig: string;
26
- /** 개발 모드 */
27
+ /** 개발 모드 (ngDevMode, advancedOptimizations 제어) */
27
28
  dev: boolean;
29
+ /** 레거시 모듈 지원 (import.meta 불가로 HMR 비활성화) */
30
+ legacyModule?: boolean;
31
+ /** 소스맵 생성 여부 (dev와 독립적으로 제어) */
32
+ sourcemap?: boolean;
28
33
  /** rebuild 시작 콜백 (CLI 상태 보고용) */
29
34
  onBuildStart?: () => void;
30
35
  /** rebuild 완료 콜백 (CLI 상태 보고용) */
@@ -83,9 +88,11 @@ export function sdAngularPlugin(options: SdAngularPluginOptions): Plugin {
83
88
  let hmrLock: Promise<void> = Promise.resolve();
84
89
  const scssDependencies = new Map<string, Set<string>>();
85
90
 
91
+ const enableSourcemap = options.sourcemap ?? options.dev;
92
+
86
93
  // Pre-bundle transformer: optimizeDeps의 esbuild 단계에서 Angular Linker 실행
87
94
  const prebundleTransformer = new JavaScriptTransformer(
88
- { sourcemap: options.dev, jit: false, thirdPartySourcemaps: options.dev },
95
+ { sourcemap: enableSourcemap, jit: false, thirdPartySourcemaps: enableSourcemap },
89
96
  1,
90
97
  );
91
98
 
@@ -93,8 +100,8 @@ export function sdAngularPlugin(options: SdAngularPluginOptions): Plugin {
93
100
  const maxThreads = Math.max(1, Math.floor((os.cpus().length * 2) / 3));
94
101
  return new JavaScriptTransformer(
95
102
  {
96
- sourcemap: options.dev,
97
- thirdPartySourcemaps: options.dev,
103
+ sourcemap: enableSourcemap,
104
+ thirdPartySourcemaps: enableSourcemap,
98
105
  advancedOptimizations: !options.dev,
99
106
  jit: false,
100
107
  },
@@ -111,7 +118,7 @@ export function sdAngularPlugin(options: SdAngularPluginOptions): Plugin {
111
118
  define: {
112
119
  ngDevMode: options.dev ? undefined : "false",
113
120
  ngJitMode: "false",
114
- ngHmrMode: options.dev ? undefined : "false",
121
+ ngHmrMode: options.dev && !options.legacyModule ? undefined : "false",
115
122
  },
116
123
  optimizeDeps: {
117
124
  esbuildOptions: {
@@ -165,13 +172,13 @@ export function sdAngularPlugin(options: SdAngularPluginOptions): Plugin {
165
172
 
166
173
  // AngularCompiler 생성
167
174
  compiler = new AngularCompiler({
168
- rootNames: parsed.fileNames,
175
+ rootNames: getPackageSourceFiles(workspaceRoot, parsed),
169
176
  compilerOptions: parsed.options,
170
177
  angularCompilerOptions: parsed.raw?.angularCompilerOptions,
171
178
  sourceFileCache,
172
179
  transformStylesheet,
173
180
  externalStylesheets,
174
- enableHmr: options.dev,
181
+ enableHmr: options.dev && !options.legacyModule,
175
182
  compilerOptionsTransformer: (opts) => ({
176
183
  ...opts,
177
184
  noEmit: false,
@@ -345,7 +352,20 @@ export function sdAngularPlugin(options: SdAngularPluginOptions): Plugin {
345
352
 
346
353
  // Phase 2: JS 변환 — Angular Linker로 partial → full AOT 링킹 + 최적화
347
354
  const transformed = await jsTransformer.transformData(pathx.posix(id), code, false);
348
- return { code: new TextDecoder().decode(transformed) };
355
+ const transformedCode = new TextDecoder().decode(transformed);
356
+
357
+ // 인라인 소스맵 분리 (Rollup 경고 방지)
358
+ const inlineMapMatch = transformedCode.match(
359
+ /\/\/# sourceMappingURL=data:application\/json;(?:charset=utf-8;)?base64,(.+)$/m,
360
+ );
361
+ if (inlineMapMatch != null) {
362
+ const mapJson = atob(inlineMapMatch[1]);
363
+ return {
364
+ code: transformedCode.slice(0, inlineMapMatch.index),
365
+ map: JSON.parse(mapJson),
366
+ };
367
+ }
368
+ return { code: transformedCode, map: null };
349
369
  },
350
370
 
351
371
  async buildEnd() {
@@ -299,14 +299,16 @@ export class Capacitor {
299
299
  Capacitor._logger.debug("cap init 완료");
300
300
  }
301
301
 
302
- // 기본 www/index.html 생성
302
+ // www/index.html placeholder (cap sync/copy에 필요, 이미 존재하면 유지)
303
303
  const wwwPath = pathx.posixResolve(this._capPath, "www");
304
304
  await fsx.mkdir(wwwPath);
305
- await fsx.write(
306
- pathx.posixResolve(wwwPath, "index.html"),
307
- "<!DOCTYPE html><html><head></head><body></body></html>",
308
- );
309
- Capacitor._logger.debug("www/index.html 생성 완료");
305
+ const wwwIndexPath = pathx.posixResolve(wwwPath, "index.html");
306
+ if (!(await fsx.exists(wwwIndexPath))) {
307
+ await fsx.write(
308
+ wwwIndexPath,
309
+ "<!DOCTYPE html><html><head></head><body></body></html>",
310
+ );
311
+ }
310
312
 
311
313
  return true;
312
314
  }
@@ -798,11 +800,17 @@ export default config;
798
800
  }
799
801
 
800
802
  /**
801
- * styles.xml의 스플래시 테마 parent 변경
803
+ * styles.xml의 스플래시 테마 수정
804
+ *
805
+ * 1. Theme.SplashScreen parent → Theme.AppCompat.DayNight.NoActionBar
806
+ * Theme.SplashScreen은 android:windowBackground에 compat_splash_screen을 설정하여
807
+ * android:background(@drawable/splash)와 이중 표시를 발생시킨다.
808
+ * installSplashScreen()을 호출하지 않으므로 Theme.SplashScreen 기능이 불필요하다.
802
809
  *
803
- * Theme.SplashScreen은 android:windowBackground에 compat_splash_screen을 설정하여
804
- * android:background(@drawable/splash)와 이중 표시를 발생시킨다.
805
- * installSplashScreen()을 호출하지 않으므로 Theme.SplashScreen 기능이 불필요하다.
810
+ * 2. android:background android:windowBackground
811
+ * android:background View 레벨 속성으로 AppCompat 뷰 계층의 여러 View에 상속되어
812
+ * 동일한 splash 로고가 다중 레이어에 중복 렌더링된다.
813
+ * android:windowBackground는 Window의 DecorView에만 적용되어 단일 렌더링을 보장한다.
806
814
  */
807
815
  private async _configureAndroidStyles(androidPath: string): Promise<void> {
808
816
  const stylesPath = pathx.posixResolve(androidPath, "app/src/main/res/values/styles.xml");
@@ -813,17 +821,27 @@ export default config;
813
821
  }
814
822
 
815
823
  let content = await fsx.read(stylesPath);
824
+ let changed = false;
816
825
 
817
- if (!content.includes('parent="Theme.SplashScreen"')) {
818
- return;
826
+ if (content.includes('parent="Theme.SplashScreen"')) {
827
+ content = content.replace(
828
+ 'parent="Theme.SplashScreen"',
829
+ 'parent="Theme.AppCompat.DayNight.NoActionBar"',
830
+ );
831
+ changed = true;
819
832
  }
820
833
 
821
- content = content.replace(
822
- 'parent="Theme.SplashScreen"',
823
- 'parent="Theme.AppCompat.DayNight.NoActionBar"',
824
- );
834
+ if (content.includes('"android:background">@drawable/splash')) {
835
+ content = content.replace(
836
+ '"android:background">@drawable/splash',
837
+ '"android:windowBackground">@drawable/splash',
838
+ );
839
+ changed = true;
840
+ }
825
841
 
826
- await fsx.write(stylesPath, content);
842
+ if (changed) {
843
+ await fsx.write(stylesPath, content);
844
+ }
827
845
  }
828
846
 
829
847
  //#endregion
@@ -966,8 +984,9 @@ export default config;
966
984
  if (content.includes("signingConfigs")) return;
967
985
 
968
986
  const storeType = sign.keystoreType ?? "jks";
969
- const escapedStorePassword = sign.storePassword.replace(/'/g, "\\'");
970
- const escapedKeyPassword = sign.password.replace(/'/g, "\\'");
987
+ const escapeGroovy = (s: string) => s.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
988
+ const escapedStorePassword = escapeGroovy(sign.storePassword);
989
+ const escapedKeyPassword = escapeGroovy(sign.password);
971
990
 
972
991
  const signingBlock = ` signingConfigs {
973
992
  release {
@@ -981,7 +1000,7 @@ export default config;
981
1000
  `;
982
1001
 
983
1002
  // signingConfigs 블록을 buildTypes 앞에 삽입
984
- content = content.replace(/(\s*buildTypes\s*\{)/, `${signingBlock}$1`);
1003
+ content = content.replace(/(\s*buildTypes\s*\{)/, (match) => `\n${signingBlock}${match}`);
985
1004
 
986
1005
  // buildTypes.release에 signingConfig 추가
987
1006
  content = content.replace(
@@ -1007,12 +1026,15 @@ export default config;
1007
1026
 
1008
1027
  const androidPath = pathx.posixResolve(this._capPath, "android");
1009
1028
  const isWindows = process.platform === "win32";
1010
- const gradlew = isWindows
1011
- ? pathx.posixResolve(androidPath, "gradlew.bat")
1012
- : pathx.posixResolve(androidPath, "gradlew");
1013
1029
 
1014
- Capacitor._logger.debug(`Gradle 실행: ${gradlew} ${gradleTask}`);
1015
- await this._exec(gradlew, [gradleTask, "--no-daemon"], androidPath);
1030
+ if (isWindows) {
1031
+ Capacitor._logger.debug(`Gradle 실행: cmd /c gradlew.bat ${gradleTask}`);
1032
+ await this._exec("cmd", ["/c", "gradlew.bat", gradleTask, "--no-daemon"], androidPath);
1033
+ } else {
1034
+ const gradlew = pathx.posixResolve(androidPath, "gradlew");
1035
+ Capacitor._logger.debug(`Gradle 실행: ${gradlew} ${gradleTask}`);
1036
+ await this._exec(gradlew, [gradleTask, "--no-daemon"], androidPath);
1037
+ }
1016
1038
  }
1017
1039
 
1018
1040
  /**
@@ -20,12 +20,16 @@ export interface ViteEngineOptions {
20
20
  rebuildManager?: RebuildManager;
21
21
  /** sdScopeWatchPlugin용 replaceDeps 항목 */
22
22
  replaceDeps?: Array<{ packageName: string; sourcePath: string }>;
23
+ /** 빌드 출력 경로 (미설정 시 pkgDir/dist) */
24
+ outDir?: string;
25
+ /** Vite base 경로 (미설정 시 /{pkgName}/) */
26
+ base?: string;
23
27
  }
24
28
 
25
29
  /**
26
- * Angular 클라이언트 패키지용 Vite 기반 빌드 엔진
30
+ * 클라이언트 패키지용 Vite 기반 빌드 엔진
27
31
  *
28
- * sdAngularPlugin을 통한 Angular AOT 컴파일과 함께
32
+ * framework 설정에 따라 sdAngularPlugin 또는 solidPlugin을 사용하며,
29
33
  * Vite의 createServer/build API를 직접 사용하는 client.worker를 래핑한다.
30
34
  */
31
35
  export class ViteEngine implements BuildEngine {
@@ -34,6 +38,8 @@ export class ViteEngine implements BuildEngine {
34
38
  private readonly _resultCollector: ResultCollector | undefined;
35
39
  private readonly _rebuildManager: RebuildManager | undefined;
36
40
  private readonly _replaceDeps: Array<{ packageName: string; sourcePath: string }> | undefined;
41
+ private readonly _outDir: string | undefined;
42
+ private readonly _base: string | undefined;
37
43
 
38
44
  private _worker: WorkerProxy<typeof ClientWorkerModule> | undefined;
39
45
  private _isWatchMode = false;
@@ -47,6 +53,8 @@ export class ViteEngine implements BuildEngine {
47
53
  this._resultCollector = options.resultCollector;
48
54
  this._rebuildManager = options.rebuildManager;
49
55
  this._replaceDeps = options.replaceDeps;
56
+ this._outDir = options.outDir;
57
+ this._base = options.base;
50
58
  }
51
59
 
52
60
  /**
@@ -60,11 +68,14 @@ export class ViteEngine implements BuildEngine {
60
68
  name: this._pkg.name,
61
69
  cwd: this._cwd,
62
70
  pkgDir: this._pkg.dir,
71
+ framework: this._pkg.config.framework,
63
72
  env: this._pkg.config.env,
64
73
  configs: this._pkg.config.configs,
65
74
  browserSupport: this._pkg.config.browserSupport,
66
75
  enableLint: output.lint,
67
76
  exclude: this._pkg.config.exclude,
77
+ outDir: this._outDir,
78
+ base: this._base,
68
79
  });
69
80
 
70
81
  logger.debug(`[${this._pkg.name}] ViteEngine.run 완료 (success: ${result.success})`);
@@ -167,6 +178,7 @@ export class ViteEngine implements BuildEngine {
167
178
  name: this._pkg.name,
168
179
  cwd: this._cwd,
169
180
  pkgDir: this._pkg.dir,
181
+ framework: this._pkg.config.framework,
170
182
  port,
171
183
  env: this._pkg.config.env,
172
184
  configs: this._pkg.config.configs,
@@ -38,6 +38,10 @@ export function createBuildEngine(
38
38
  resolvedReplaceDeps?: Array<{ packageName: string; sourcePath: string }>;
39
39
  resultCollector?: ResultCollector;
40
40
  rebuildManager?: RebuildManager;
41
+ /** 클라이언트 빌드 출력 경로 (ViteEngine에만 적용) */
42
+ outDir?: string;
43
+ /** Vite base 경로 (ViteEngine에만 적용, 미설정 시 /{pkgName}/) */
44
+ base?: string;
41
45
  },
42
46
  ): BuildEngine {
43
47
  if (pkg.config.target === "client") {
@@ -48,6 +52,8 @@ export function createBuildEngine(
48
52
  resultCollector: options.resultCollector,
49
53
  rebuildManager: options.rebuildManager,
50
54
  replaceDeps: options.resolvedReplaceDeps,
55
+ outDir: options.outDir,
56
+ base: options.base,
51
57
  });
52
58
  }
53
59
 
@@ -236,7 +236,7 @@ export class BuildOrchestrator {
236
236
  );
237
237
 
238
238
  try {
239
- const engineResult = await engine.run({ js: true, dts: true, lint: true });
239
+ const engineResult = await engine.run({ js: true, dts: true, lint: false });
240
240
 
241
241
  // 빌드 결과 처리
242
242
  const diagnostics = engineResult.build.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
@@ -251,18 +251,6 @@ export class BuildOrchestrator {
251
251
  });
252
252
  if (!engineResult.build.success) state.hasError = true;
253
253
 
254
- // 린트 결과 처리
255
- if (engineResult.lint != null) {
256
- results.push({
257
- name,
258
- target: config.target,
259
- type: "lint",
260
- success: engineResult.lint.success,
261
- errors: engineResult.lint.formattedOutput !== "" ? [engineResult.lint.formattedOutput] : undefined,
262
- });
263
- if (!engineResult.lint.success) state.hasError = true;
264
- }
265
-
266
254
  } finally {
267
255
  await engine.stop();
268
256
  }
@@ -288,7 +276,7 @@ export class BuildOrchestrator {
288
276
  );
289
277
 
290
278
  try {
291
- const engineResult = await engine.run({ js: true, dts: false, lint: true });
279
+ const engineResult = await engine.run({ js: true, dts: false, lint: false });
292
280
 
293
281
  // 빌드 결과 처리
294
282
  const diagnostics = engineResult.build.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
@@ -303,18 +291,6 @@ export class BuildOrchestrator {
303
291
  });
304
292
  if (!engineResult.build.success) state.hasError = true;
305
293
 
306
- // 린트 결과 처리
307
- if (engineResult.lint != null) {
308
- results.push({
309
- name,
310
- target: "server",
311
- type: "lint",
312
- success: engineResult.lint.success,
313
- errors: engineResult.lint.formattedOutput !== "" ? [engineResult.lint.formattedOutput] : undefined,
314
- });
315
- if (!engineResult.lint.success) state.hasError = true;
316
- }
317
-
318
294
  } finally {
319
295
  await engine.stop();
320
296
  }
@@ -328,13 +304,17 @@ export class BuildOrchestrator {
328
304
 
329
305
  buildTasks.push(async () => {
330
306
  this._logger.debug(`[${name}] (client) 빌드 시작`);
307
+ const isNativeBuild = config.capacitor != null || config.electron != null;
308
+ const outDir = config.capacitor != null
309
+ ? pathx.posixResolve(pkgDir, ".capacitor/www")
310
+ : undefined;
331
311
  const engine = createBuildEngine(
332
312
  { name, dir: pkgDir, config: { ...config, env: { ...baseEnv, ...config.env } } },
333
- { cwd: this._cwd },
313
+ { cwd: this._cwd, outDir, base: isNativeBuild ? "" : undefined },
334
314
  );
335
315
 
336
316
  try {
337
- const engineResult = await engine.run({ js: true, dts: false, lint: true });
317
+ const engineResult = await engine.run({ js: true, dts: false, lint: false });
338
318
 
339
319
  // 빌드 결과 처리
340
320
  const diagnostics = engineResult.build.diagnostics.map((d) => deserializeDiagnostic(d, fileCache));
@@ -349,18 +329,6 @@ export class BuildOrchestrator {
349
329
  });
350
330
  if (!engineResult.build.success) state.hasError = true;
351
331
 
352
- // 린트 결과 처리
353
- if (engineResult.lint != null) {
354
- results.push({
355
- name,
356
- target: "client",
357
- type: "lint",
358
- success: engineResult.lint.success,
359
- errors: engineResult.lint.formattedOutput !== "" ? [engineResult.lint.formattedOutput] : undefined,
360
- });
361
- if (!engineResult.lint.success) state.hasError = true;
362
- }
363
-
364
332
  // 네이티브 빌드 (빌드 성공 시에만 실행)
365
333
  if (engineResult.build.success) {
366
334
  const distPath = pathx.posixResolve(pkgDir, "dist");
@@ -215,6 +215,8 @@ export interface SdBrowserSupportConfig {
215
215
  export interface SdClientPackageConfig {
216
216
  /** 빌드 타겟 */
217
217
  target: "client";
218
+ /** 클라이언트 프레임워크 선택. 미지정 시 "angular" */
219
+ framework?: "angular" | "solid";
218
220
  /**
219
221
  * 서버 설정
220
222
  * - string: 연결할 서버 패키지명 (예: "solid-demo-server")