@simplysm/sd-cli 7.1.1 → 7.1.12

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 (39) hide show
  1. package/README.md +24 -18
  2. package/dist/bin/sd-cli.d.ts +1 -1
  3. package/dist/bin/sd-cli.mjs +2 -8
  4. package/dist/builder/SdCliClientBuilder.d.ts +1 -1
  5. package/dist/builder/SdCliClientBuilder.mjs +19 -73
  6. package/dist/builder/SdCliServerBuilder.d.ts +1 -1
  7. package/dist/builder/SdCliServerBuilder.mjs +8 -7
  8. package/dist/commons.d.ts +0 -1
  9. package/dist/entry-points/SdCliProjectGenerator.mjs +10 -7
  10. package/dist/entry-points/file/project/fc_project_npmconfig.mjs +5 -5
  11. package/dist/entry-points/file/project/fc_project_readme.mjs +1 -1
  12. package/dist/entry-points/file/project/fc_project_tsconfig.mjs +2 -2
  13. package/dist/entry-points/file/project/fc_project_yarnrc.mjs +1 -14
  14. package/dist/index.d.ts +0 -1
  15. package/dist/index.mjs +1 -2
  16. package/dist/ng-tools/SdCliNgModuleGenerator.mjs +2 -2
  17. package/dist/packages/SdCliPackage.mjs +2 -2
  18. package/docs/client-router.md +1 -1
  19. package/docs/client-sw.md +1 -1
  20. package/docs/lib-local-update.md +5 -5
  21. package/package.json +17 -18
  22. package/src/bin/sd-cli.ts +1 -11
  23. package/src/builder/SdCliClientBuilder.ts +18 -79
  24. package/src/builder/SdCliServerBuilder.ts +7 -6
  25. package/src/commons.ts +0 -1
  26. package/src/entry-points/SdCliProjectGenerator.ts +10 -6
  27. package/src/entry-points/file/project/fc_project_npmconfig.ts +4 -4
  28. package/src/entry-points/file/project/fc_project_readme.ts +1 -1
  29. package/src/entry-points/file/project/fc_project_tsconfig.ts +1 -1
  30. package/src/entry-points/file/project/fc_project_yarnrc.ts +0 -13
  31. package/src/index.ts +0 -1
  32. package/src/ng-tools/SdCliNgModuleGenerator.ts +1 -1
  33. package/src/packages/SdCliPackage.ts +1 -1
  34. package/.eslintrc.cjs +0 -21
  35. package/dist/entry-points/SdCliNpm.d.ts +0 -6
  36. package/dist/entry-points/SdCliNpm.mjs +0 -24
  37. package/src/entry-points/SdCliNpm.ts +0 -28
  38. package/tsconfig-build.json +0 -16
  39. package/tsconfig.json +0 -39
@@ -93,7 +93,7 @@ export class SdCliPackage extends EventEmitter {
93
93
  if (this.config.type === "library") {
94
94
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
95
95
  if (this.config.publish === "npm") {
96
- await SdProcess.spawnAsync("npm publish --access public", { cwd: this.rootPath });
96
+ await SdProcess.spawnAsync("yarn npm publish --access public", { cwd: this.rootPath });
97
97
  }
98
98
  else {
99
99
  throw new NeverEntryError();
@@ -203,4 +203,4 @@ export class SdCliPackage extends EventEmitter {
203
203
  });
204
204
  }
205
205
  }
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlQYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhY2thZ2VzL1NkQ2xpUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEMsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBc0I1QyxZQUFvQyxhQUFxQixFQUN0QixRQUFnQixFQUNoQixNQUEyQjtRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUgwQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBRzVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUExQkQs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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlQYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhY2thZ2VzL1NkQ2xpUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEMsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBc0I1QyxZQUFvQyxhQUFxQixFQUN0QixRQUFnQixFQUNoQixNQUEyQjtRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUgwQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBRzVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUExQkQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVE7WUFDL0QsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVM7U0FDakUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFhZSxFQUFFLENBQUMsS0FBc0IsRUFBRSxRQUFrQztRQUMzRSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxRQUFrQjtRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7UUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQXdDLEVBQVEsRUFBRTtZQUMxRSxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUM1QjthQUNGO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDdkQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdEUsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUV6RSxJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDckM7UUFFRCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDN0IsT0FBTyxFQUNQLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQ0ksSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEIsT0FBTyxTQUFTLENBQUM7YUFDbEI7aUJBQ0ksSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtpQkFDSTtnQkFDSCxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7YUFDOUI7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFekUsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxNQUFNLEdBQStCLEVBQUUsQ0FBQztRQUU1QyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDN0IsT0FBTyxFQUNQLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixNQUFNLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQ1gsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWTtRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDbEMsdUVBQXVFO2dCQUN2RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRTtvQkFDakMsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RjtxQkFDSTtvQkFDSCxNQUFNLElBQUksZUFBZSxFQUFFLENBQUM7aUJBQzdCO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7d0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztxQkFDL0U7b0JBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO29CQUMvQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBRXRFLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQzFCLFNBQVMsRUFDVCxRQUFRLENBQ1QsQ0FBQztvQkFFRixNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDekYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzdFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtxQkFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNOO3FCQUNJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7b0JBQ3pILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO29CQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMvQyxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztvQkFFdkgsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTt3QkFDakUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7d0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJO3dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSTt3QkFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7cUJBQy9CLENBQUMsQ0FBQztvQkFDSCxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25GLE1BQU0sR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUN4QjtnQkFDRCx1RUFBdUU7cUJBQ2xFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFO29CQUN2RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztvQkFDeEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUM7b0JBRXZILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sS0FBSyxZQUFZLEVBQUU7NEJBQ2xGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7eUJBQ2hDO3dCQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUFDO29CQUVILE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTt3QkFDaEcsR0FBRyxFQUFFLElBQUk7d0JBQ1QsS0FBSyxFQUFFLElBQUk7cUJBQ1osQ0FBQyxDQUFDO29CQUVILE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7d0JBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFDakYsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDcEUsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxzQkFBc0I7UUFDbEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDMUUsTUFBTSxZQUFZLEdBQWMsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakYsTUFBTSxhQUFhLEdBQWMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxhQUFhLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1FBQ3BFLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDN0MsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUUzQyxhQUFhLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzRSxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxPQUFzRCxFQUFFLEtBQStDO1FBQ3JKLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3BCLGFBQWEsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFDbkU7Z0JBQ0UsR0FBRztnQkFDSCxJQUFJLENBQUMsUUFBUTtnQkFDYixXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxhQUFhO2FBQ25CLEVBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO2dCQUN0QyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7YUFDakIsQ0FBQyxDQUFDO1lBRUwsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2QsT0FBTyxFQUFFLENBQUM7aUJBQ1g7cUJBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO29CQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1g7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxNQUFNLENBQUMsTUFBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2QsT0FBTyxFQUFFLENBQUM7aUJBQ1g7cUJBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO29CQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1g7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDZCxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pDLE9BQU87aUJBQ1I7Z0JBRUQsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
@@ -8,7 +8,7 @@ package.json
8
8
  {
9
9
  ...,
10
10
  "dependencies": {
11
- "@angular/router": "^13.2.0",
11
+ "@angular/router": "^14.1.1",
12
12
  ...
13
13
  }
14
14
  }
package/docs/client-sw.md CHANGED
@@ -8,7 +8,7 @@ package.json
8
8
  {
9
9
  ...,
10
10
  "dependencies": {
11
- "@angular/service-worker": "^13.2.0",
11
+ "@angular/service-worker": "^14.1.1",
12
12
  ...
13
13
  }
14
14
  }
@@ -26,7 +26,7 @@
26
26
  ``` bat
27
27
  :: 주의사항: 대상이되는 라이브러리는 반드시 빌드되어 있거나, 변경감지 중이여야 합니다.
28
28
  :: sd-cli local-update --help 참고
29
- sd-cli local-update
29
+ npx sd-cli local-update
30
30
  ```
31
31
 
32
32
  또한, `sd-cli watch` 를 수행할 경우에는, 로컬 라이브러리 파일이 변경되면 자동으로 해당 파일을 다시 덮어씁니다.
@@ -39,11 +39,11 @@ sd-cli local-update
39
39
  {
40
40
  ...,
41
41
  "scripts": {
42
- "watch": "sd-cli local-update && sd-cli watch",
43
- "build": "sd-cli local-update && sd-cli build",
44
- "publish": "sd-cli local-update && sd-cli publish",
42
+ "watch": "npx sd-cli local-update && npx sd-cli watch",
43
+ "build": "npx sd-cli local-update && npx sd-cli build",
44
+ "publish": "npx sd-cli local-update && npx sd-cli publish",
45
45
  "----- utils": "",
46
- "postinstall": "sd-cli local-update && sd-cli prepare"
46
+ "postinstall": "npx sd-cli local-update && npx sd-cli prepare"
47
47
  },
48
48
  ...
49
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "7.1.1",
3
+ "version": "7.1.12",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -20,31 +20,30 @@
20
20
  "**/*"
21
21
  ],
22
22
  "dependencies": {
23
- "@angular-architects/module-federation": "^14.3.10",
24
- "@angular-devkit/build-angular": "^14.1.2",
25
- "@angular/common": "^14.1.2",
26
- "@angular/compiler": "^14.1.2",
27
- "@angular/compiler-cli": "^14.1.2",
28
- "@angular/core": "^14.1.2",
23
+ "@angular-devkit/build-angular": "^14.1.3",
24
+ "@angular/common": "^14.1.3",
25
+ "@angular/compiler": "^14.1.3",
26
+ "@angular/compiler-cli": "^14.1.3",
27
+ "@angular/core": "^14.1.3",
29
28
  "@babel/parser": "^7.18.11",
30
29
  "@babel/types": "^7.18.10",
31
30
  "@compodoc/compodoc": "^1.1.19",
32
- "@ngtools/webpack": "^14.1.2",
33
- "@simplysm/sd-core-common": "7.1.1",
34
- "@simplysm/sd-core-node": "7.1.1",
35
- "@simplysm/sd-service-common": "7.1.1",
36
- "@simplysm/sd-service-server": "7.1.1",
37
- "@simplysm/sd-storage": "7.1.1",
31
+ "@ngtools/webpack": "^14.1.3",
32
+ "@simplysm/sd-core-common": "7.1.12",
33
+ "@simplysm/sd-core-node": "7.1.12",
34
+ "@simplysm/sd-service-common": "7.1.12",
35
+ "@simplysm/sd-service-server": "7.1.12",
36
+ "@simplysm/sd-storage": "7.1.12",
38
37
  "browserslist": "^4.21.3",
39
38
  "chokidar": "^3.5.3",
40
39
  "connect": "^3.7.0",
41
40
  "copy-webpack-plugin": "^11.0.0",
42
41
  "cordova": "^11.0.0",
43
42
  "css-loader": "^6.7.1",
44
- "electron": "^20.0.2",
43
+ "electron": "^20.0.3",
45
44
  "electron-builder": "^23.3.3",
46
45
  "electron-rebuild": "^3.2.9",
47
- "eslint": "^8.21.0",
46
+ "eslint": "^8.22.0",
48
47
  "eslint-webpack-plugin": "^3.2.0",
49
48
  "jsdom": "^20.0.0",
50
49
  "jszip": "^3.10.1",
@@ -59,20 +58,20 @@
59
58
  "semver": "^7.3.7",
60
59
  "source-map-loader": "^4.0.0",
61
60
  "source-map-support": "^0.5.21",
62
- "terser-webpack-plugin": "^5.3.3",
61
+ "terser-webpack-plugin": "^5.3.5",
63
62
  "ts-loader": "^9.3.1",
64
63
  "typedoc": "^0.23.10",
65
64
  "typescript": "~4.7.4",
66
65
  "webpack": "^5.74.0",
67
66
  "xml2js": "^0.4.23",
68
67
  "yargs": "^17.5.1",
69
- "zone.js": "~0.11.4"
68
+ "zone.js": "~0.11.8"
70
69
  },
71
70
  "devDependencies": {
72
71
  "@types/connect": "^3.4.35",
73
72
  "@types/jsdom": "^20.0.0",
74
73
  "@types/mime": "^3.0.1",
75
- "@types/semver": "^7.3.11",
74
+ "@types/semver": "^7.3.12",
76
75
  "@types/source-map-support": "^0.5.4",
77
76
  "@types/xml2js": "^0.4.11",
78
77
  "@types/yargs": "^17.0.11"
package/src/bin/sd-cli.ts CHANGED
@@ -1,11 +1,10 @@
1
- #!/usr/bin/env node --experimental-specifier-resolution=node --experimental-import-meta-resolve
1
+ #!/usr/bin/env node --no-warnings --experimental-specifier-resolution=node --experimental-import-meta-resolve
2
2
 
3
3
  import yargs from "yargs";
4
4
  import { hideBin } from "yargs/helpers";
5
5
  import { Logger, LoggerSeverity } from "@simplysm/sd-core-node";
6
6
  import { SdCliProject } from "../entry-points/SdCliProject";
7
7
  import { SdCliLocalUpdate } from "../entry-points/SdCliLocalUpdate";
8
- import { SdCliNpm } from "../entry-points/SdCliNpm";
9
8
  import { SdCliPrepare } from "../entry-points/SdCliPrepare";
10
9
  import { SdCliFileCrypto } from "../entry-points/SdCliFileCrypto";
11
10
  import { SdCliCordova } from "../build-tool/SdCliCordova";
@@ -29,11 +28,6 @@ const argv = (yargs(hideBin(process.argv)) as any)
29
28
  "sd-cli 준비",
30
29
  (cmd) => cmd.version(false).hide("help").hide("debug")
31
30
  )
32
- .command(
33
- "update",
34
- "패키지 업데이트 (npm update)",
35
- (cmd) => cmd.version(false).hide("help").hide("debug")
36
- )
37
31
  .command(
38
32
  "local-update",
39
33
  "로컬 라이브러리 업데이트를 수행합니다.",
@@ -375,10 +369,6 @@ const logger = Logger.get(["simplysm", "sd-cli", "bin", "sd-cli"]);
375
369
  await new SdCliPrepare()
376
370
  .prepareAsync();
377
371
  }
378
- else if (argv._[0] === "update") {
379
- await new SdCliNpm(process.cwd())
380
- .updateAsync();
381
- }
382
372
  else if (argv._[0] === "local-update") {
383
373
  await new SdCliLocalUpdate(process.cwd())
384
374
  .runAsync({
@@ -33,7 +33,6 @@ import electronBuilder from "electron-builder";
33
33
  import { fileURLToPath } from "url";
34
34
  import { Entrypoint } from "@angular-devkit/build-angular/src/utils/index-file/augment-index-html";
35
35
  import { StringUtil } from "@simplysm/sd-core-common";
36
- import mf from "@angular-architects/module-federation/webpack";
37
36
  import LintResult = ESLint.LintResult;
38
37
 
39
38
  export class SdCliClientBuilder extends EventEmitter {
@@ -97,7 +96,7 @@ export class SdCliClientBuilder extends EventEmitter {
97
96
  }
98
97
 
99
98
  private async _checkCacheAsync(watch: boolean): Promise<void> {
100
- const projPkgLockContent = await FsUtil.readFileAsync(path.resolve(this._projRootPath, "package-lock.json"));
99
+ const projPkgLockContent = await FsUtil.readFileAsync(path.resolve(this._projRootPath, "yarn.lock"));
101
100
 
102
101
  // const cachePath = path.resolve(cacheBasePath, pkgVersion);
103
102
 
@@ -140,8 +139,8 @@ export class SdCliClientBuilder extends EventEmitter {
140
139
 
141
140
  // 빌드 준비
142
141
  const extModules = this._config.builder?.electron ? this._getExternalModules() : [];
143
- const webpackConfigs = (Object.keys(this._config.builder ?? { web: {} }) as ("web" | "cordova" | "electron")[])
144
- .map((builderType) => this._getWebpackConfig(true, builderType, extModules));
142
+ const webpackConfigs = await (Object.keys(this._config.builder ?? { web: {} }) as ("web" | "cordova" | "electron")[])
143
+ .mapAsync(async (builderType) => await this._getWebpackConfigAsync(true, builderType, extModules));
145
144
  const multiCompiler = webpack(webpackConfigs);
146
145
  await new Promise<void>((resolve, reject) => {
147
146
  // const invalidFiles: string[] = [];
@@ -227,7 +226,7 @@ export class SdCliClientBuilder extends EventEmitter {
227
226
  this._logger.debug("Webpack 빌드 수행...");
228
227
  const extModules = this._config.builder?.electron ? this._getExternalModules() : [];
229
228
  const builderTypes = (Object.keys(this._config.builder ?? { web: {} }) as ("web" | "cordova" | "electron")[]);
230
- const webpackConfigs = builderTypes.map((builderType) => this._getWebpackConfig(false, builderType, extModules));
229
+ const webpackConfigs = await builderTypes.mapAsync(async (builderType) => await this._getWebpackConfigAsync(false, builderType, extModules));
231
230
  const multipleCompiler = webpack(webpackConfigs);
232
231
  const buildResults = await new Promise<ISdCliPackageBuildResult[]>((resolve, reject) => {
233
232
  multipleCompiler.run((err, multiStats) => {
@@ -302,7 +301,7 @@ export class SdCliClientBuilder extends EventEmitter {
302
301
  .toObject((item) => item, () => "*")
303
302
  }
304
303
  }, { space: 2 });
305
- await FsUtil.writeFileAsync(path.resolve(electronSrcPath, "package-lock.json"), "");
304
+ await FsUtil.writeFileAsync(path.resolve(electronSrcPath, "yarn.lock"), "");
306
305
 
307
306
  await FsUtil.writeFileAsync(path.resolve(electronSrcPath, `.env`), [
308
307
  "NODE_ENV=production",
@@ -360,7 +359,7 @@ export class SdCliClientBuilder extends EventEmitter {
360
359
  ].map((p) => path.dirname(p));
361
360
  }
362
361
 
363
- private _getWebpackConfig(watch: boolean, builderType: "web" | "cordova" | "electron", extModules: { name: string; exists: boolean }[]): webpack.Configuration {
362
+ private async _getWebpackConfigAsync(watch: boolean, builderType: "web" | "cordova" | "electron", extModules: { name: string; exists: boolean }[]): Promise<webpack.Configuration> {
364
363
  const projNpmConfig = this._getNpmConfig(this._projRootPath)!;
365
364
  const projName = projNpmConfig.name;
366
365
 
@@ -368,7 +367,7 @@ export class SdCliClientBuilder extends EventEmitter {
368
367
 
369
368
  const npmConfig = this._getNpmConfig(this._rootPath)!;
370
369
 
371
- const projPkgLockContent = FsUtil.readFile(path.resolve(this._projRootPath, "package-lock.json"));
370
+ const projPkgLockContent = FsUtil.readFile(path.resolve(this._projRootPath, "yarn.lock"));
372
371
 
373
372
  const pkgKey = npmConfig.name.split("/").last()!;
374
373
  const publicPath = builderType === "web" ? `/${pkgKey}/` : watch ? `/${pkgKey}/${builderType}/` : ``;
@@ -403,16 +402,6 @@ export class SdCliClientBuilder extends EventEmitter {
403
402
  // 버전쓰기
404
403
  FsUtil.writeFile(path.resolve(this._cacheBasePath, "version"), versionHash);
405
404
 
406
- // ModuleFederation 관련
407
- const sharedMappings = new mf.SharedMappings();
408
- sharedMappings.register(this._tsconfigFilePath, []);
409
-
410
- const deps = SdCliNpmConfigUtil.getDependencies(npmConfig);
411
- const shared = deps.defaults
412
- .concat(deps.optionals)
413
- .distinct()
414
- .toObject((item) => item, () => ({ singleton: true, strictVersion: true, requiredVersion: "auto" }));
415
-
416
405
  let prevProgressMessage = "";
417
406
  return {
418
407
  mode: watch ? "development" : "production",
@@ -425,11 +414,7 @@ export class SdCliClientBuilder extends EventEmitter {
425
414
  symlinks: true,
426
415
  modules: [this._projRootPath, "node_modules"],
427
416
  mainFields: ["es2020", "es2015", "browser", "module", "main"],
428
- conditionNames: ["es2020", "es2015", "..."],
429
-
430
- ...this._config.moduleFederation ? {
431
- alias: sharedMappings.getAliases()
432
- } : {}
417
+ conditionNames: ["es2020", "es2015", "..."]
433
418
  },
434
419
  resolveLoader: {
435
420
  symlinks: true
@@ -452,11 +437,7 @@ export class SdCliClientBuilder extends EventEmitter {
452
437
  libraryTarget: undefined,
453
438
  crossOriginLoading: false,
454
439
  trustedTypes: "angular#bundler",
455
- scriptType: "module",
456
-
457
- ...this._config.moduleFederation ? {
458
- publicPath: "auto"
459
- } : {}
440
+ scriptType: "module"
460
441
  },
461
442
  watch: false,
462
443
  watchOptions: {
@@ -472,8 +453,7 @@ export class SdCliClientBuilder extends EventEmitter {
472
453
  experiments: {
473
454
  backCompat: false,
474
455
  syncWebAssembly: true,
475
- asyncWebAssembly: true,
476
- ...this._config.moduleFederation ? { outputModule: true } : {}
456
+ asyncWebAssembly: true
477
457
  },
478
458
  infrastructureLogging: { level: "error" },
479
459
  stats: "errors-warnings",
@@ -541,11 +521,7 @@ export class SdCliClientBuilder extends EventEmitter {
541
521
  test: /[\\/]node_modules[\\/]/
542
522
  } : false
543
523
  }
544
- },
545
-
546
- ...this._config.moduleFederation ? {
547
- runtimeChunk: false
548
- } : {}
524
+ }
549
525
  },
550
526
  module: {
551
527
  strictExportPresence: true,
@@ -566,7 +542,7 @@ export class SdCliClientBuilder extends EventEmitter {
566
542
  exclude: [/[/\\](?:core-js|@babel|tslib|web-animations-js|web-streams-polyfill)[/\\]/],
567
543
  use: [
568
544
  {
569
- loader: "@angular-devkit/build-angular/src/babel/webpack-loader",
545
+ loader: fileURLToPath(await import.meta.resolve!("@angular-devkit/build-angular/src/babel/webpack-loader")),
570
546
  options: {
571
547
  cacheDirectory: path.resolve(this._cacheBasePath, "webpack-babel"),
572
548
  scriptTarget: ts.ScriptTarget.ES2017,
@@ -581,7 +557,7 @@ export class SdCliClientBuilder extends EventEmitter {
581
557
  {
582
558
  test: /\.[cm]?jsx?$/,
583
559
  enforce: "pre" as const,
584
- loader: "source-map-loader",
560
+ loader: fileURLToPath(await import.meta.resolve!("source-map-loader")),
585
561
  options: {
586
562
  filterSourceMappingUrl: (mapUri: string, resourcePath: string) => {
587
563
  const projRegex = new RegExp(`node_modules[\\\\/]@${projName}[\\\\/]`);
@@ -594,7 +570,7 @@ export class SdCliClientBuilder extends EventEmitter {
594
570
  ] : [],
595
571
  {
596
572
  test: /\.[cm]?tsx?$/,
597
- loader: "@ngtools/webpack",
573
+ loader: fileURLToPath(await import.meta.resolve!("@ngtools/webpack")),
598
574
  exclude: [/[/\\](?:css-loader|mini-css-extract-plugin|webpack)[/\\]/]
599
575
  },
600
576
  {
@@ -612,7 +588,7 @@ export class SdCliClientBuilder extends EventEmitter {
612
588
  loader: MiniCssExtractPlugin.loader
613
589
  },
614
590
  {
615
- loader: "css-loader",
591
+ loader: fileURLToPath(await import.meta.resolve!("css-loader")),
616
592
  options: { url: false, sourceMap: watch }
617
593
  }
618
594
  ],
@@ -628,11 +604,11 @@ export class SdCliClientBuilder extends EventEmitter {
628
604
  {
629
605
  use: [
630
606
  {
631
- loader: "resolve-url-loader",
607
+ loader: fileURLToPath(await import.meta.resolve!("resolve-url-loader")),
632
608
  options: { sourceMap: watch }
633
609
  },
634
610
  {
635
- loader: "sass-loader",
611
+ loader: fileURLToPath(await import.meta.resolve!("sass-loader")),
636
612
  options: {
637
613
  implementation: sassImplementation,
638
614
  sourceMap: true,
@@ -818,44 +794,7 @@ export class SdCliClientBuilder extends EventEmitter {
818
794
  }
819
795
  return resultMessages.join(os.EOL);
820
796
  }
821
- }),
822
- ...this._config.moduleFederation === "remote" ? [
823
- new webpack.container.ModuleFederationPlugin({
824
- library: { type: "module" },
825
- name: npmConfig.name.replace(/[^0-9A-z]/g, "_"),
826
- filename: "remoteEntry.js",
827
- exposes: {
828
- "./AppMfeModule": path.resolve(this._rootPath, "src/AppMfeModule")
829
- },
830
- shared: mf.share({
831
- /*"@angular/core": { singleton: true, strictVersion: true, requiredVersion: "auto" },
832
- "@angular/common": { singleton: true, strictVersion: true, requiredVersion: "auto" },
833
- "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: "auto" },
834
- "@angular/router": { singleton: true, strictVersion: true, requiredVersion: "auto" },
835
- "@simplysm/sd-angular": { singleton: true, strictVersion: true, requiredVersion: "auto" },*/
836
-
837
- ...shared,
838
- ...sharedMappings.getDescriptors()
839
- } as any, path.resolve(this._rootPath, "package.json"))
840
- }),
841
- sharedMappings.getPlugin()
842
- ] : this._config.moduleFederation === "host" ? [
843
- new webpack.container.ModuleFederationPlugin({
844
- library: { type: "module" },
845
- remotes: {},
846
- shared: mf.share({
847
- /*"@angular/core": { singleton: true, strictVersion: true, requiredVersion: "auto" },
848
- "@angular/common": { singleton: true, strictVersion: true, requiredVersion: "auto" },
849
- "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: "auto" },
850
- "@angular/router": { singleton: true, strictVersion: true, requiredVersion: "auto" },
851
- "@simplysm/sd-angular": { singleton: true, strictVersion: true, requiredVersion: "auto" },*/
852
-
853
- ...shared,
854
- ...sharedMappings.getDescriptors()
855
- } as any, path.resolve(this._rootPath, "package.json"))
856
- }),
857
- sharedMappings.getPlugin()
858
- ] : []
797
+ })
859
798
  ] as any[]
860
799
  };
861
800
  }
@@ -15,6 +15,7 @@ import CopyWebpackPlugin from "copy-webpack-plugin";
15
15
  import { LicenseWebpackPlugin } from "license-webpack-plugin";
16
16
  import { SdCliNpmConfigUtil } from "../utils/SdCliNpmConfigUtil";
17
17
  import { createHash } from "crypto";
18
+ import { fileURLToPath } from "url";
18
19
  import LintResult = ESLint.LintResult;
19
20
 
20
21
  export class SdCliServerBuilder extends EventEmitter {
@@ -44,7 +45,7 @@ export class SdCliServerBuilder extends EventEmitter {
44
45
  }
45
46
 
46
47
  private async _checkCacheAsync(watch: boolean): Promise<void> {
47
- const projPkgLockContent = await FsUtil.readFileAsync(path.resolve(this._projRootPath, "package-lock.json"));
48
+ const projPkgLockContent = await FsUtil.readFileAsync(path.resolve(this._projRootPath, "yarn.lock"));
48
49
 
49
50
  // const cachePath = path.resolve(cacheBasePath, pkgVersion);
50
51
 
@@ -77,7 +78,7 @@ export class SdCliServerBuilder extends EventEmitter {
77
78
 
78
79
  // 빌드 준비
79
80
  const extModules = this._getExternalModules();
80
- const webpackConfig = this._getWebpackConfig(true, extModules);
81
+ const webpackConfig = await this._getWebpackConfigAsync(true, extModules);
81
82
  const compiler = webpack(webpackConfig);
82
83
  await new Promise<void>((resolve, reject) => {
83
84
  compiler.hooks.watchRun.tapAsync(this.constructor.name, (args, callback) => {
@@ -119,7 +120,7 @@ export class SdCliServerBuilder extends EventEmitter {
119
120
  // 빌드
120
121
  this._logger.debug("Webpack 빌드 수행...");
121
122
  const extModules = this._getExternalModules();
122
- const webpackConfig = this._getWebpackConfig(false, extModules);
123
+ const webpackConfig = await this._getWebpackConfigAsync(false, extModules);
123
124
  const compiler = webpack(webpackConfig);
124
125
  const buildResults = await new Promise<ISdCliPackageBuildResult[]>((resolve, reject) => {
125
126
  compiler.run((err, stats) => {
@@ -254,7 +255,7 @@ export class SdCliServerBuilder extends EventEmitter {
254
255
  ].map((p) => path.dirname(p));
255
256
  }
256
257
 
257
- private _getWebpackConfig(watch: boolean, extModules: { name: string; exists: boolean }[]): webpack.Configuration {
258
+ private async _getWebpackConfigAsync(watch: boolean, extModules: { name: string; exists: boolean }[]): Promise<webpack.Configuration> {
258
259
  const projNpmConfig = this._getNpmConfig(this._projRootPath)!;
259
260
  const projName = projNpmConfig.name;
260
261
 
@@ -367,7 +368,7 @@ export class SdCliServerBuilder extends EventEmitter {
367
368
  {
368
369
  test: /\.[cm]?jsx?$/,
369
370
  enforce: "pre" as const,
370
- loader: "source-map-loader",
371
+ loader: fileURLToPath(await import.meta.resolve!("source-map-loader")),
371
372
  options: {
372
373
  filterSourceMappingUrl: (mapUri: string, resourcePath: string) => {
373
374
  const projRegex = new RegExp(`node_modules[\\\\/]@${projName}[\\\\/]`);
@@ -381,7 +382,7 @@ export class SdCliServerBuilder extends EventEmitter {
381
382
  {
382
383
  test: /\.[cm]?tsx?$/,
383
384
  exclude: /node_modules/,
384
- loader: "ts-loader",
385
+ loader: fileURLToPath(await import.meta.resolve!("ts-loader")),
385
386
  options: {
386
387
  configFile: this._tsconfigFilePath,
387
388
  errorFormatter: (msg: ErrorInfo) => {
package/src/commons.ts CHANGED
@@ -75,7 +75,6 @@ export interface ISdCliServerPackageConfig {
75
75
 
76
76
  export interface ISdCliClientPackageConfig {
77
77
  type: "client";
78
- moduleFederation?: "host" | "remote";
79
78
  builder?: {
80
79
  web?: ISdCliClientBuilderWebConfig;
81
80
  cordova?: ISdCliClientBuilderCordovaConfig;
@@ -35,8 +35,8 @@ export class SdCliProjectGenerator {
35
35
  }
36
36
 
37
37
  public async initAsync(opt: { name?: string; description: string; author: string; gitUrl: string }): Promise<void> {
38
- if ((await FsUtil.readdirAsync(this._rootPath)).filter((item) => ![".idea", "yarn.lock", "package.json", ".yarn"].includes(path.basename(item))).length > 0) {
39
- throw new Error("빈 디렉토리가 아닙니다. (.idea, yarn.lock, package.json, .yarn 외의 파일/폴더가 존재하는 경우, 초기화할 수 없습니다.)");
38
+ if ((await FsUtil.readdirAsync(this._rootPath)).filter((item) => ![".idea", "yarn.lock", "package.json", ".yarn", ".yarnrc.yml", "node_modules"].includes(path.basename(item))).length > 0) {
39
+ throw new Error("빈 디렉토리가 아닙니다. (.idea, yarn.lock, package.json, .yarn, .yarnrc.yml, node_modules 외의 파일/폴더가 존재하는 경우, 초기화할 수 없습니다.)");
40
40
  }
41
41
 
42
42
  const projName = opt.name ?? path.basename(this._rootPath);
@@ -54,7 +54,7 @@ export class SdCliProjectGenerator {
54
54
  await FsUtil.writeFileAsync(path.resolve(this._rootPath, ".gitignore"), fc_project_gitignore());
55
55
 
56
56
  this._logger.log(`[${projName}] '.yarnrc.yml' 파일 생성`);
57
- await FsUtil.writeFileAsync(path.resolve(this._rootPath, ".gitignore"), fc_project_yarnrc());
57
+ await FsUtil.writeFileAsync(path.resolve(this._rootPath, ".yarnrc.yml"), fc_project_yarnrc());
58
58
 
59
59
  this._logger.log(`[${projName}] 'package.json' 파일 생성`);
60
60
  let cliVersion: string | undefined;
@@ -87,6 +87,9 @@ export class SdCliProjectGenerator {
87
87
  this._logger.log(`[${projName}] 'packages' 디렉토리 생성`);
88
88
  await FsUtil.mkdirsAsync(path.resolve(this._rootPath, "packages"));
89
89
 
90
+ this._logger.log(`[${projName}] yarn plugin import interactive-tools`);
91
+ await SdProcess.spawnAsync("yarn plugin import interactive-tools", { cwd: this._rootPath }, true);
92
+
90
93
  this._logger.log(`[${projName}] yarn install`);
91
94
  await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
92
95
  }
@@ -123,8 +126,8 @@ export class SdCliProjectGenerator {
123
126
  },
124
127
  });
125
128
 
126
- this._logger.log(`[${projName}] npm install`);
127
- await SdProcess.spawnAsync("npm install", { cwd: this._rootPath }, true);
129
+ this._logger.log(`[${projName}] yarn install`);
130
+ await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
128
131
  }
129
132
 
130
133
  public async addDbLibAsync(opt: { name: string }): Promise<void> {
@@ -262,7 +265,8 @@ export class SdCliProjectGenerator {
262
265
  isForAngular: true,
263
266
  dependencies: {
264
267
  "@angular/platform-browser": "^14.1.1",
265
- "@angular/platform-browser-dynamic": "^14.1.1"
268
+ "@angular/platform-browser-dynamic": "^14.1.1",
269
+ "@angular/compiler": "^14.1.1"
266
270
  },
267
271
  tsconfigOptions: {
268
272
  angularCompilerOptions: {
@@ -19,11 +19,11 @@ export const fc_project_npmconfig = (opt: { name: string; description: string; a
19
19
  "test"
20
20
  ],
21
21
  scripts: {
22
- "watch": "sd-cli watch",
23
- "build": "sd-cli build",
24
- "publish": "sd-cli publish",
22
+ "watch": "npx sd-cli watch",
23
+ "build": "npx sd-cli build",
24
+ "publish": "npx sd-cli publish",
25
25
  "----- utils": "",
26
- "postinstall": "sd-cli prepare"
26
+ "postinstall": "npx sd-cli prepare"
27
27
  },
28
28
  devDependencies: {
29
29
  "@simplysm/eslint-plugin": "~7.1.0",
@@ -7,6 +7,6 @@ export const fc_project_readme = (opt: { description: string }): string => /* la
7
7
 
8
8
  ## Installation
9
9
 
10
- npm install
10
+ yarn install
11
11
 
12
12
  `.trim();
@@ -13,7 +13,7 @@ export const fc_project_tsconfig = (): string => JSON.stringify({
13
13
  noImplicitAny: false,
14
14
  useUnknownInCatchVariables: false,
15
15
  noFallthroughCasesInSwitch: true,
16
- inlineSourceMap: true,
16
+ sourceMap: true,
17
17
  skipDefaultLibCheck: true,
18
18
  skipLibCheck: true,
19
19
  forceConsistentCasingInFileNames: true,
@@ -1,18 +1,5 @@
1
1
  export const fc_project_yarnrc = (): string => /* language=yml */ `
2
2
  nodeLinker: node-modules
3
-
4
- packageExtensions:
5
- "@angular-architects/module-federation-runtime@*":
6
- dependencies:
7
- "@angular/common": ^14.0.0
8
- "@angular/core": ^14.0.0
9
- rxjs: ^7.4.0
10
- zone.js: ~0.11.4
11
-
12
- plugins:
13
- - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
14
- spec: "@yarnpkg/plugin-interactive-tools"
15
-
16
3
  yarnPath: .yarn/releases/yarn-3.2.2.cjs
17
4
 
18
5
  `.trim();
package/src/index.ts CHANGED
@@ -35,7 +35,6 @@ export * from "./entry-points/file/project/fc_project_yarnrc";
35
35
  export * from "./entry-points/file/server/fc_package_server_main";
36
36
  export * from "./entry-points/SdCliFileCrypto";
37
37
  export * from "./entry-points/SdCliLocalUpdate";
38
- export * from "./entry-points/SdCliNpm";
39
38
  export * from "./entry-points/SdCliPrepare";
40
39
  export * from "./entry-points/SdCliProject";
41
40
  export * from "./entry-points/SdCliProjectGenerator";
@@ -502,7 +502,7 @@ export class SdCliNgModuleGenerator {
502
502
  fnResult += " {\n";
503
503
  fnResult += ` path: "${child.path}",\n`;
504
504
  if ("target" in child) {
505
- fnResult += ` loadChildren: async () => await import("${this._getFileImportModuleName(def.filePath, child.target.filePath)}").then((m) => m.${child.target.name})\n`;
505
+ fnResult += ` loadChildren: () => import("${this._getFileImportModuleName(def.filePath, child.target.filePath)}").then((m) => m.${child.target.name})\n`;
506
506
  }
507
507
  else {
508
508
  fnResult += ` children: ${fn(child.children).replace(/\n/g, "\n ")}\n`;