@simplysm/sd-cli 12.5.21 → 12.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{build-tools → entry}/SdCliCordova.d.ts +5 -6
- package/dist/{build-tools → entry}/SdCliCordova.js +117 -99
- package/dist/entry/SdCliCordova.js.map +1 -0
- package/dist/entry/SdCliElectron.d.ts +2 -2
- package/dist/entry/SdCliElectron.js +50 -40
- package/dist/entry/SdCliElectron.js.map +1 -1
- package/dist/entry/SdCliLocalUpdate.d.ts +1 -2
- package/dist/entry/SdCliLocalUpdate.js +26 -27
- package/dist/entry/SdCliLocalUpdate.js.map +1 -1
- package/dist/entry/SdCliProject.d.ts +1 -5
- package/dist/entry/SdCliProject.js +62 -288
- package/dist/entry/SdCliProject.js.map +1 -1
- package/dist/index.d.ts +23 -20
- package/dist/index.js +23 -20
- package/dist/index.js.map +1 -1
- package/dist/pkg-builders/SdMultiBuildRunner.d.ts +21 -0
- package/dist/pkg-builders/SdMultiBuildRunner.js +174 -0
- package/dist/pkg-builders/SdMultiBuildRunner.js.map +1 -0
- package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.d.ts +4 -0
- package/dist/{build-tools → pkg-builders/client}/SdCliNgRoutesFileGenerator.js +7 -7
- package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js.map +1 -0
- package/dist/pkg-builders/client/SdClientBuildRunner.d.ts +20 -0
- package/dist/pkg-builders/client/SdClientBuildRunner.js +135 -0
- package/dist/pkg-builders/client/SdClientBuildRunner.js.map +1 -0
- package/dist/pkg-builders/client/SdNgBundler.d.ts +29 -0
- package/dist/{build-tools → pkg-builders/client}/SdNgBundler.js +107 -151
- package/dist/pkg-builders/client/SdNgBundler.js.map +1 -0
- package/dist/{build-tools → pkg-builders/client}/SdNgBundlerContext.d.ts +1 -2
- package/dist/{build-tools → pkg-builders/client}/SdNgBundlerContext.js +19 -45
- package/dist/pkg-builders/client/SdNgBundlerContext.js.map +1 -0
- package/dist/pkg-builders/client/createSdNgPlugin.d.ts +10 -0
- package/dist/{bundle-plugins/sdNgPlugin.js → pkg-builders/client/createSdNgPlugin.js} +32 -33
- package/dist/pkg-builders/client/createSdNgPlugin.js.map +1 -0
- package/dist/pkg-builders/lib/SdCliIndexFileGenerator.d.ts +5 -0
- package/dist/{build-tools → pkg-builders/lib}/SdCliIndexFileGenerator.js +11 -11
- package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js.map +1 -0
- package/dist/pkg-builders/lib/SdJsLibBuildRunner.d.ts +16 -0
- package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +81 -0
- package/dist/pkg-builders/lib/SdJsLibBuildRunner.js.map +1 -0
- package/dist/pkg-builders/lib/SdTsLibBuildRunner.d.ts +13 -0
- package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +89 -0
- package/dist/pkg-builders/lib/SdTsLibBuildRunner.js.map +1 -0
- package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +14 -0
- package/dist/pkg-builders/lib/SdTsLibBuilder.js +54 -0
- package/dist/pkg-builders/lib/SdTsLibBuilder.js.map +1 -0
- package/dist/pkg-builders/server/SdServerBuildRunner.d.ts +17 -0
- package/dist/{builders/SdCliServerBuilder.js → pkg-builders/server/SdServerBuildRunner.js} +48 -53
- package/dist/pkg-builders/server/SdServerBuildRunner.js.map +1 -0
- package/dist/pkg-builders/server/SdServerBundler.d.ts +19 -0
- package/dist/{build-tools → pkg-builders/server}/SdServerBundler.js +25 -30
- package/dist/pkg-builders/server/SdServerBundler.js.map +1 -0
- package/dist/pkg-builders/server/createSdServerPlugin.d.ts +10 -0
- package/dist/pkg-builders/server/createSdServerPlugin.js +53 -0
- package/dist/pkg-builders/server/createSdServerPlugin.js.map +1 -0
- package/dist/sd-cli.js +61 -54
- package/dist/sd-cli.js.map +1 -1
- package/dist/ts-builder/SdTsCompileWorker.d.ts +9 -0
- package/dist/ts-builder/SdTsCompileWorker.js +16 -0
- package/dist/ts-builder/SdTsCompileWorker.js.map +1 -0
- package/dist/ts-builder/SdTsCompiler.d.ts +7 -0
- package/dist/ts-builder/SdTsCompiler.js +557 -0
- package/dist/ts-builder/SdTsCompiler.js.map +1 -0
- package/dist/types/build-plugin.type.d.ts +14 -0
- package/dist/types/build-plugin.type.js +2 -0
- package/dist/types/build-plugin.type.js.map +1 -0
- package/dist/types/build.type.d.ts +15 -0
- package/dist/types/build.type.js +2 -0
- package/dist/types/build.type.js.map +1 -0
- package/dist/types/common-configs.type.d.ts +22 -0
- package/dist/types/common-configs.type.js +2 -0
- package/dist/types/common-configs.type.js.map +1 -0
- package/dist/types/sd-configs.type.d.ts +99 -0
- package/dist/types/sd-configs.type.js +2 -0
- package/dist/types/sd-configs.type.js.map +1 -0
- package/dist/types/ts-compiler.type.d.ts +29 -0
- package/dist/types/ts-compiler.type.js +2 -0
- package/dist/types/ts-compiler.type.js.map +1 -0
- package/dist/types/workers.type.d.ts +49 -0
- package/dist/types/workers.type.js +2 -0
- package/dist/types/workers.type.js.map +1 -0
- package/dist/utils/SdCliConvertMessageUtil.d.ts +21 -0
- package/dist/utils/SdCliConvertMessageUtil.js +137 -0
- package/dist/utils/SdCliConvertMessageUtil.js.map +1 -0
- package/dist/workers/compile-worker.js +27 -0
- package/dist/workers/compile-worker.js.map +1 -0
- package/dist/workers/lint-worker.js +36 -0
- package/dist/workers/lint-worker.js.map +1 -0
- package/dist/workers/server-worker.d.ts +1 -0
- package/dist/workers/server-worker.js +49 -0
- package/dist/workers/server-worker.js.map +1 -0
- package/package.json +8 -11
- package/src/entry/SdCliCordova.ts +363 -0
- package/src/entry/SdCliElectron.ts +96 -69
- package/src/entry/SdCliLocalUpdate.ts +43 -44
- package/src/entry/SdCliProject.ts +72 -417
- package/src/index.ts +23 -20
- package/src/pkg-builders/SdMultiBuildRunner.ts +250 -0
- package/src/{build-tools → pkg-builders/client}/SdCliNgRoutesFileGenerator.ts +7 -7
- package/src/pkg-builders/client/SdClientBuildRunner.ts +191 -0
- package/src/{build-tools → pkg-builders/client}/SdNgBundler.ts +135 -190
- package/src/pkg-builders/client/SdNgBundlerContext.ts +111 -0
- package/src/{bundle-plugins/sdNgPlugin.ts → pkg-builders/client/createSdNgPlugin.ts} +43 -46
- package/src/{build-tools → pkg-builders/lib}/SdCliIndexFileGenerator.ts +11 -11
- package/src/pkg-builders/lib/SdJsLibBuildRunner.ts +105 -0
- package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +128 -0
- package/src/pkg-builders/lib/SdTsLibBuilder.ts +69 -0
- package/src/{builders/SdCliServerBuilder.ts → pkg-builders/server/SdServerBuildRunner.ts} +66 -78
- package/src/{build-tools → pkg-builders/server}/SdServerBundler.ts +40 -41
- package/src/pkg-builders/server/createSdServerPlugin.ts +77 -0
- package/src/sd-cli.ts +197 -211
- package/src/ts-builder/SdTsCompileWorker.ts +21 -0
- package/src/ts-builder/SdTsCompiler.ts +775 -0
- package/src/types/build-plugin.type.ts +16 -0
- package/src/types/build.type.ts +17 -0
- package/src/types/common-configs.type.ts +27 -0
- package/src/types/sd-configs.type.ts +114 -0
- package/src/types/ts-compiler.type.ts +29 -0
- package/src/types/workers.type.ts +27 -0
- package/src/utils/SdCliConvertMessageUtil.ts +177 -0
- package/src/workers/compile-worker.ts +31 -0
- package/src/workers/lint-worker.ts +44 -0
- package/src/workers/server-worker.ts +52 -0
- package/tsconfig.json +7 -1
- package/dist/build-cluster.js +0 -201
- package/dist/build-cluster.js.map +0 -1
- package/dist/build-tools/SdCliCordova.js.map +0 -1
- package/dist/build-tools/SdCliIndexFileGenerator.d.ts +0 -5
- package/dist/build-tools/SdCliIndexFileGenerator.js.map +0 -1
- package/dist/build-tools/SdCliNgRoutesFileGenerator.d.ts +0 -4
- package/dist/build-tools/SdCliNgRoutesFileGenerator.js.map +0 -1
- package/dist/build-tools/SdLinter.d.ts +0 -5
- package/dist/build-tools/SdLinter.js +0 -49
- package/dist/build-tools/SdLinter.js.map +0 -1
- package/dist/build-tools/SdNgBundler.d.ts +0 -29
- package/dist/build-tools/SdNgBundler.js.map +0 -1
- package/dist/build-tools/SdNgBundlerContext.js.map +0 -1
- package/dist/build-tools/SdReactBundler.d.ts +0 -25
- package/dist/build-tools/SdReactBundler.js +0 -295
- package/dist/build-tools/SdReactBundler.js.map +0 -1
- package/dist/build-tools/SdReactBundlerContext.d.ts +0 -14
- package/dist/build-tools/SdReactBundlerContext.js +0 -59
- package/dist/build-tools/SdReactBundlerContext.js.map +0 -1
- package/dist/build-tools/SdServerBundler.d.ts +0 -20
- package/dist/build-tools/SdServerBundler.js.map +0 -1
- package/dist/build-tools/SdTsCompiler.d.ts +0 -34
- package/dist/build-tools/SdTsCompiler.js +0 -534
- package/dist/build-tools/SdTsCompiler.js.map +0 -1
- package/dist/build-tools/SdTsLibBundler.d.ts +0 -13
- package/dist/build-tools/SdTsLibBundler.js +0 -58
- package/dist/build-tools/SdTsLibBundler.js.map +0 -1
- package/dist/builders/SdCliClientBuilder.d.ts +0 -18
- package/dist/builders/SdCliClientBuilder.js +0 -172
- package/dist/builders/SdCliClientBuilder.js.map +0 -1
- package/dist/builders/SdCliJsLibLinter.d.ts +0 -13
- package/dist/builders/SdCliJsLibLinter.js +0 -60
- package/dist/builders/SdCliJsLibLinter.js.map +0 -1
- package/dist/builders/SdCliServerBuilder.d.ts +0 -15
- package/dist/builders/SdCliServerBuilder.js.map +0 -1
- package/dist/builders/SdCliTsLibBuilder.d.ts +0 -12
- package/dist/builders/SdCliTsLibBuilder.js +0 -90
- package/dist/builders/SdCliTsLibBuilder.js.map +0 -1
- package/dist/bundle-plugins/sdNgPlugin.d.ts +0 -16
- package/dist/bundle-plugins/sdNgPlugin.js.map +0 -1
- package/dist/bundle-plugins/sdReactPlugin.d.ts +0 -16
- package/dist/bundle-plugins/sdReactPlugin.js +0 -117
- package/dist/bundle-plugins/sdReactPlugin.js.map +0 -1
- package/dist/bundle-plugins/sdServerPlugin.d.ts +0 -16
- package/dist/bundle-plugins/sdServerPlugin.js +0 -63
- package/dist/bundle-plugins/sdServerPlugin.js.map +0 -1
- package/dist/commons.d.ts +0 -145
- package/dist/commons.js +0 -2
- package/dist/commons.js.map +0 -1
- package/dist/server-worker.js +0 -57
- package/dist/server-worker.js.map +0 -1
- package/dist/utils/SdCliBuildResultUtil.d.ts +0 -16
- package/dist/utils/SdCliBuildResultUtil.js +0 -54
- package/dist/utils/SdCliBuildResultUtil.js.map +0 -1
- package/src/build-cluster.ts +0 -212
- package/src/build-tools/SdCliCordova.ts +0 -340
- package/src/build-tools/SdLinter.ts +0 -65
- package/src/build-tools/SdNgBundlerContext.ts +0 -137
- package/src/build-tools/SdReactBundler.ts +0 -372
- package/src/build-tools/SdReactBundlerContext.ts +0 -71
- package/src/build-tools/SdTsCompiler.ts +0 -754
- package/src/build-tools/SdTsLibBundler.ts +0 -72
- package/src/builders/SdCliClientBuilder.ts +0 -233
- package/src/builders/SdCliJsLibLinter.ts +0 -72
- package/src/builders/SdCliTsLibBuilder.ts +0 -126
- package/src/bundle-plugins/sdReactPlugin.ts +0 -164
- package/src/bundle-plugins/sdServerPlugin.ts +0 -94
- package/src/commons.ts +0 -171
- package/src/server-worker.ts +0 -65
- package/src/utils/SdCliBuildResultUtil.ts +0 -63
- /package/dist/{build-cluster.d.ts → workers/compile-worker.d.ts} +0 -0
- /package/dist/{server-worker.d.ts → workers/lint-worker.d.ts} +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
|
|
3
|
+
import { FsUtil, PathUtil } from "@simplysm/sd-core-node";
|
|
4
|
+
import { SdTsCompileWorker } from "../../ts-builder/SdTsCompileWorker";
|
|
5
|
+
export class SdTsLibBuilder {
|
|
6
|
+
static async new(pkgPath, dev, watchScopePaths) {
|
|
7
|
+
const tsCompiler = await SdTsCompileWorker.new({
|
|
8
|
+
pkgPath,
|
|
9
|
+
additionalOptions: { declaration: true },
|
|
10
|
+
isDevMode: dev,
|
|
11
|
+
globalStyleFilePath: PathUtil.norm(pkgPath, "src/styles.scss"),
|
|
12
|
+
isForBundle: false,
|
|
13
|
+
watchScopePaths: watchScopePaths,
|
|
14
|
+
});
|
|
15
|
+
return new SdTsLibBuilder(tsCompiler, pkgPath);
|
|
16
|
+
}
|
|
17
|
+
constructor(_compiler, _pkgPath) {
|
|
18
|
+
this._compiler = _compiler;
|
|
19
|
+
this._pkgPath = _pkgPath;
|
|
20
|
+
}
|
|
21
|
+
async buildAsync(modifiedFileSet) {
|
|
22
|
+
const tsCompileResult = await this._compiler.compileAsync(modifiedFileSet);
|
|
23
|
+
const emitFileSet = new Set();
|
|
24
|
+
for (const emitFile of tsCompileResult.emitFileSet) {
|
|
25
|
+
const emitFileInfos = tsCompileResult.emittedFilesCacheMap.get(emitFile);
|
|
26
|
+
if (emitFileInfos) {
|
|
27
|
+
for (const emitFileInfo of emitFileInfos) {
|
|
28
|
+
if (emitFileInfo.outAbsPath != null) {
|
|
29
|
+
FsUtil.writeFile(emitFileInfo.outAbsPath, emitFileInfo.text);
|
|
30
|
+
emitFileSet.add(emitFileInfo.outAbsPath);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const globalStylesheetBundlingResult = tsCompileResult.stylesheetBundlingResultMap.get(emitFile);
|
|
35
|
+
if (globalStylesheetBundlingResult) {
|
|
36
|
+
for (const outputFile of globalStylesheetBundlingResult.outputFiles) {
|
|
37
|
+
const distPath = PathUtil.norm(this._pkgPath, "dist", path.relative(this._pkgPath, outputFile.path));
|
|
38
|
+
if (PathUtil.isChildPath(distPath, path.resolve(this._pkgPath, "dist"))) {
|
|
39
|
+
FsUtil.writeFile(distPath, outputFile.text);
|
|
40
|
+
emitFileSet.add(distPath);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const styleResults = Array.from(tsCompileResult.stylesheetBundlingResultMap.values()).mapMany((item) => SdCliConvertMessageUtil.convertToBuildMessagesFromEsbuild(item, this._pkgPath));
|
|
46
|
+
return {
|
|
47
|
+
watchFileSet: tsCompileResult.watchFileSet,
|
|
48
|
+
affectedFileSet: tsCompileResult.affectedFileSet,
|
|
49
|
+
results: [...tsCompileResult.messages, ...styleResults],
|
|
50
|
+
emitFileSet,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=SdTsLibBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdTsLibBuilder.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdTsLibBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { TNormPath } from "@simplysm/sd-core-node";
|
|
3
|
+
import { ISdProjectConfig } from "../../types/sd-configs.type";
|
|
4
|
+
import { ISdBuildRunnerResult } from "../../types/build.type";
|
|
5
|
+
export declare class SdServerBuildRunner extends EventEmitter {
|
|
6
|
+
#private;
|
|
7
|
+
private readonly _projConf;
|
|
8
|
+
private readonly _pkgPath;
|
|
9
|
+
constructor(_projConf: ISdProjectConfig, _pkgPath: TNormPath);
|
|
10
|
+
on(event: "change", listener: () => void): this;
|
|
11
|
+
on(event: "complete", listener: (result: ISdBuildRunnerResult) => void): this;
|
|
12
|
+
watchAsync(): Promise<void>;
|
|
13
|
+
buildAsync(): Promise<ISdBuildRunnerResult>;
|
|
14
|
+
private _runAsync;
|
|
15
|
+
private _getExternalModulesAsync;
|
|
16
|
+
private _debug;
|
|
17
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { FsUtil, Logger, PathUtil, SdFsWatcher } from "@simplysm/sd-core-node";
|
|
3
3
|
import path from "path";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#logger = Logger.get(["simplysm", "sd-cli", "SdCliServerBuilder"]);
|
|
4
|
+
import { ObjectUtil, StringUtil } from "@simplysm/sd-core-common";
|
|
5
|
+
import { SdServerBundler } from "./SdServerBundler";
|
|
6
|
+
export class SdServerBuildRunner extends EventEmitter {
|
|
7
|
+
#logger = Logger.get(["simplysm", "sd-cli", "SdCliServerBuildRunner"]);
|
|
9
8
|
#pkgConf;
|
|
10
|
-
#
|
|
9
|
+
#serverBundler;
|
|
11
10
|
#extModules;
|
|
12
11
|
constructor(_projConf, _pkgPath) {
|
|
13
12
|
super();
|
|
@@ -22,42 +21,38 @@ export class SdCliServerBuilder extends EventEmitter {
|
|
|
22
21
|
async watchAsync() {
|
|
23
22
|
this.emit("change");
|
|
24
23
|
this._debug("dist 초기화...");
|
|
25
|
-
|
|
24
|
+
FsUtil.remove(path.resolve(this._pkgPath, "dist"));
|
|
26
25
|
this._debug("GEN .config...");
|
|
27
26
|
const confDistPath = path.resolve(this._pkgPath, "dist/.config.json");
|
|
28
|
-
|
|
29
|
-
const result = await this._runAsync(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
FsUtil.writeFile(confDistPath, JSON.stringify(this.#pkgConf.configs ?? {}, undefined, 2));
|
|
28
|
+
const result = await this._runAsync(true);
|
|
29
|
+
const res = {
|
|
30
|
+
affectedFilePathSet: result.affectedFileSet,
|
|
31
|
+
buildMessages: result.buildMessages,
|
|
32
|
+
emitFileSet: result.emitFileSet,
|
|
33
|
+
};
|
|
34
|
+
this.emit("complete", res);
|
|
34
35
|
this._debug("WATCH...");
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.emit("complete", {
|
|
46
|
-
affectedFilePaths: Array.from(watchResult.affectedFileSet),
|
|
47
|
-
buildResults: watchResult.buildResults,
|
|
48
|
-
});
|
|
49
|
-
watcher.add(watchResult.watchFileSet);
|
|
50
|
-
});
|
|
36
|
+
const watcher = SdFsWatcher.watch(Array.from(result.watchFileSet)).onChange({ delay: 100 }, async (changeInfos) => {
|
|
37
|
+
this.emit("change");
|
|
38
|
+
const watchResult = await this._runAsync(true, new Set(changeInfos.map((item) => PathUtil.norm(item.path))));
|
|
39
|
+
const watchRes = {
|
|
40
|
+
affectedFilePathSet: watchResult.affectedFileSet,
|
|
41
|
+
buildMessages: watchResult.buildMessages,
|
|
42
|
+
emitFileSet: watchResult.emitFileSet,
|
|
43
|
+
};
|
|
44
|
+
this.emit("complete", watchRes);
|
|
45
|
+
watcher.replaceWatchPaths(watchResult.watchFileSet);
|
|
51
46
|
});
|
|
52
47
|
}
|
|
53
48
|
async buildAsync() {
|
|
54
|
-
const npmConfig =
|
|
49
|
+
const npmConfig = FsUtil.readJson(path.resolve(this._pkgPath, "package.json"));
|
|
55
50
|
const extModules = await this._getExternalModulesAsync();
|
|
56
51
|
this._debug("dist 초기화...");
|
|
57
|
-
|
|
52
|
+
FsUtil.remove(path.resolve(this._pkgPath, "dist"));
|
|
58
53
|
this._debug("GEN .config.json...");
|
|
59
54
|
const confDistPath = path.resolve(this._pkgPath, "dist/.config.json");
|
|
60
|
-
|
|
55
|
+
FsUtil.writeJson(confDistPath, this.#pkgConf.configs ?? {}, { space: 2 });
|
|
61
56
|
this._debug("GEN package.json...");
|
|
62
57
|
{
|
|
63
58
|
const deps = extModules.filter((item) => item.exists).map((item) => item.name);
|
|
@@ -72,11 +67,11 @@ export class SdCliServerBuilder extends EventEmitter {
|
|
|
72
67
|
if (this.#pkgConf.pm2 && !this.#pkgConf.pm2.noStartScript) {
|
|
73
68
|
distNpmConfig.scripts = { start: "pm2 start pm2.json" };
|
|
74
69
|
}
|
|
75
|
-
|
|
70
|
+
FsUtil.writeJson(path.resolve(this._pkgPath, "dist/package.json"), distNpmConfig, { space: 2 });
|
|
76
71
|
}
|
|
77
72
|
this._debug("GEN openssl.cnf...");
|
|
78
73
|
{
|
|
79
|
-
|
|
74
|
+
FsUtil.writeFile(path.resolve(this._pkgPath, "dist/openssl.cnf"), `
|
|
80
75
|
nodejs_conf = openssl_init
|
|
81
76
|
|
|
82
77
|
[openssl_init]
|
|
@@ -101,7 +96,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
|
|
|
101
96
|
}
|
|
102
97
|
if (this.#pkgConf.pm2) {
|
|
103
98
|
this._debug("GEN pm2.json...");
|
|
104
|
-
|
|
99
|
+
FsUtil.writeJson(path.resolve(this._pkgPath, "dist/pm2.json"), {
|
|
105
100
|
name: this.#pkgConf.pm2.name ?? npmConfig.name.replace(/@/g, "").replace(/\//g, "-"),
|
|
106
101
|
script: "main.js",
|
|
107
102
|
watch: true,
|
|
@@ -129,7 +124,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
|
|
|
129
124
|
this._debug("GEN web.config...");
|
|
130
125
|
const iisDistPath = path.resolve(this._pkgPath, "dist/web.config");
|
|
131
126
|
const serverExeFilePath = this.#pkgConf.iis.nodeExeFilePath ?? "C:\\Program Files\\nodejs\\node.exe";
|
|
132
|
-
|
|
127
|
+
FsUtil.writeFile(iisDistPath, `
|
|
133
128
|
<configuration>
|
|
134
129
|
<appSettings>
|
|
135
130
|
<add key="NODE_ENV" value="production" />
|
|
@@ -160,40 +155,40 @@ Options = UnsafeLegacyRenegotiation`.trim());
|
|
|
160
155
|
|
|
161
156
|
`.trim());
|
|
162
157
|
}
|
|
163
|
-
const result = await this._runAsync(
|
|
158
|
+
const result = await this._runAsync(false);
|
|
164
159
|
return {
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
affectedFilePathSet: result.affectedFileSet,
|
|
161
|
+
buildMessages: result.buildMessages,
|
|
162
|
+
emitFileSet: result.emitFileSet,
|
|
167
163
|
};
|
|
168
164
|
}
|
|
169
|
-
async _runAsync(
|
|
165
|
+
async _runAsync(dev, modifiedFileSet) {
|
|
170
166
|
const localUpdatePaths = Object.keys(this._projConf.localUpdates ?? {}).mapMany((key) => FsUtil.glob(path.resolve(this._pkgPath, "../../node_modules", key)));
|
|
171
167
|
this._debug(`BUILD 준비...`);
|
|
172
168
|
const tsConfig = FsUtil.readJson(path.resolve(this._pkgPath, "tsconfig.json"));
|
|
173
169
|
this.#extModules = this.#extModules ?? (await this._getExternalModulesAsync());
|
|
174
|
-
this.#
|
|
175
|
-
this.#
|
|
170
|
+
this.#serverBundler =
|
|
171
|
+
this.#serverBundler ??
|
|
176
172
|
new SdServerBundler({
|
|
177
|
-
dev
|
|
173
|
+
dev,
|
|
178
174
|
pkgPath: this._pkgPath,
|
|
179
175
|
entryPoints: tsConfig.files
|
|
180
176
|
? tsConfig.files.map((item) => path.resolve(this._pkgPath, item))
|
|
181
177
|
: [path.resolve(this._pkgPath, "src/main.ts")],
|
|
182
178
|
external: this.#extModules.map((item) => item.name),
|
|
183
|
-
watchScopePaths: [path.resolve(this._pkgPath, "../"), ...localUpdatePaths],
|
|
179
|
+
watchScopePaths: [path.resolve(this._pkgPath, "../"), ...localUpdatePaths].map((item) => PathUtil.norm(item)),
|
|
184
180
|
});
|
|
185
|
-
this._debug(`BUILD
|
|
186
|
-
const
|
|
181
|
+
this._debug(`BUILD...`);
|
|
182
|
+
const bundleResult = await this.#serverBundler.bundleAsync(modifiedFileSet);
|
|
187
183
|
//-- filePaths
|
|
188
|
-
const watchFileSet = new Set(Array.from(
|
|
184
|
+
const watchFileSet = new Set(Array.from(bundleResult.watchFileSet).filter((item) => PathUtil.isChildPath(item, path.resolve(this._pkgPath, "../")) ||
|
|
189
185
|
localUpdatePaths.some((lu) => PathUtil.isChildPath(item, lu))));
|
|
190
|
-
this._debug(`LINT...`);
|
|
191
|
-
const lintResults = await SdLinter.lintAsync(this._pkgPath, buildResult.affectedFileSet, buildResult.program);
|
|
192
186
|
this._debug(`빌드 완료`);
|
|
193
187
|
return {
|
|
194
188
|
watchFileSet,
|
|
195
|
-
affectedFileSet:
|
|
196
|
-
|
|
189
|
+
affectedFileSet: bundleResult.affectedFileSet,
|
|
190
|
+
buildMessages: bundleResult.results,
|
|
191
|
+
emitFileSet: bundleResult.emitFileSet,
|
|
197
192
|
};
|
|
198
193
|
}
|
|
199
194
|
async _getExternalModulesAsync() {
|
|
@@ -201,7 +196,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
|
|
|
201
196
|
const results = [];
|
|
202
197
|
const npmConfigMap = new Map();
|
|
203
198
|
const fn = async (currPath) => {
|
|
204
|
-
const npmConfig = npmConfigMap.getOrCreate(currPath,
|
|
199
|
+
const npmConfig = npmConfigMap.getOrCreate(currPath, FsUtil.readJson(path.resolve(currPath, "package.json")));
|
|
205
200
|
const deps = {
|
|
206
201
|
defaults: [
|
|
207
202
|
...Object.keys(npmConfig.dependencies ?? {}),
|
|
@@ -276,4 +271,4 @@ Options = UnsafeLegacyRenegotiation`.trim());
|
|
|
276
271
|
this.#logger.debug(`[${path.basename(this._pkgPath)}] ${msg}`);
|
|
277
272
|
}
|
|
278
273
|
}
|
|
279
|
-
//# sourceMappingURL=
|
|
274
|
+
//# sourceMappingURL=SdServerBuildRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdServerBuildRunner.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/SdServerBuildRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TNormPath } from "@simplysm/sd-core-node";
|
|
2
|
+
import { ISdBuildMessage } from "../../types/build.type";
|
|
3
|
+
export declare class SdServerBundler {
|
|
4
|
+
#private;
|
|
5
|
+
private readonly _opt;
|
|
6
|
+
constructor(_opt: {
|
|
7
|
+
dev: boolean;
|
|
8
|
+
pkgPath: TNormPath;
|
|
9
|
+
entryPoints: string[];
|
|
10
|
+
external?: string[];
|
|
11
|
+
watchScopePaths: TNormPath[];
|
|
12
|
+
});
|
|
13
|
+
bundleAsync(modifiedFileSet?: Set<TNormPath>): Promise<{
|
|
14
|
+
watchFileSet: Set<TNormPath>;
|
|
15
|
+
affectedFileSet: Set<TNormPath>;
|
|
16
|
+
results: ISdBuildMessage[];
|
|
17
|
+
emitFileSet: Set<TNormPath>;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import esbuild from "esbuild";
|
|
2
2
|
import path from "path";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { FsUtil, Logger, PathUtil } from "@simplysm/sd-core-node";
|
|
4
|
+
import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
|
|
5
|
+
import { createSdServerPlugin } from "./createSdServerPlugin";
|
|
6
|
+
import { BuildOutputFileType } from "@angular/build/src/tools/esbuild/bundler-context";
|
|
7
|
+
import { convertOutputFile } from "@angular/build/src/tools/esbuild/utils";
|
|
5
8
|
export class SdServerBundler {
|
|
6
9
|
#logger = Logger.get(["simplysm", "sd-cli", "SdServerBundler"]);
|
|
7
10
|
#context;
|
|
8
11
|
#modifiedFileSet = new Set();
|
|
9
12
|
#resultCache = {};
|
|
13
|
+
#outputCache = new Map();
|
|
10
14
|
constructor(_opt) {
|
|
11
15
|
this._opt = _opt;
|
|
12
16
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
async bundleAsync(modifiedFileSet) {
|
|
18
|
+
this.#modifiedFileSet.clear();
|
|
19
|
+
if (modifiedFileSet) {
|
|
20
|
+
this.#modifiedFileSet.adds(...modifiedFileSet);
|
|
16
21
|
}
|
|
17
|
-
}
|
|
18
|
-
async bundleAsync() {
|
|
19
22
|
if (!this.#context) {
|
|
20
23
|
this.#context = await esbuild.context({
|
|
21
24
|
entryPoints: this._opt.entryPoints,
|
|
@@ -26,7 +29,7 @@ export class SdServerBundler {
|
|
|
26
29
|
mainFields: ["es2020", "es2015", "module", "main"],
|
|
27
30
|
conditions: ["es2020", "es2015", "module"],
|
|
28
31
|
tsconfig: path.resolve(this._opt.pkgPath, "tsconfig.json"),
|
|
29
|
-
write:
|
|
32
|
+
write: false,
|
|
30
33
|
metafile: true,
|
|
31
34
|
outdir: path.resolve(this._opt.pkgPath, "dist"),
|
|
32
35
|
format: "esm",
|
|
@@ -73,7 +76,7 @@ const __filename = __fileURLToPath__(import.meta.url);
|
|
|
73
76
|
const __dirname = __path__.dirname(__filename);`.trim(),
|
|
74
77
|
},
|
|
75
78
|
plugins: [
|
|
76
|
-
|
|
79
|
+
createSdServerPlugin({
|
|
77
80
|
modifiedFileSet: this.#modifiedFileSet,
|
|
78
81
|
dev: this._opt.dev,
|
|
79
82
|
pkgPath: this._opt.pkgPath,
|
|
@@ -83,9 +86,20 @@ const __dirname = __path__.dirname(__filename);`.trim(),
|
|
|
83
86
|
],
|
|
84
87
|
});
|
|
85
88
|
}
|
|
89
|
+
const emitFileSet = new Set();
|
|
86
90
|
let result;
|
|
87
91
|
try {
|
|
88
92
|
result = await this.#context.rebuild();
|
|
93
|
+
const outputFiles = result.outputFiles?.map((file) => convertOutputFile(file, BuildOutputFileType.Root)) ?? [];
|
|
94
|
+
for (const outputFile of outputFiles) {
|
|
95
|
+
const distFilePath = PathUtil.norm(this._opt.pkgPath, outputFile.path);
|
|
96
|
+
const prev = this.#outputCache.get(distFilePath);
|
|
97
|
+
if (prev !== Buffer.from(outputFile.contents).toString("base64")) {
|
|
98
|
+
FsUtil.writeFile(distFilePath, outputFile.contents);
|
|
99
|
+
this.#outputCache.set(distFilePath, Buffer.from(outputFile.contents).toString("base64"));
|
|
100
|
+
emitFileSet.add(distFilePath);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
89
103
|
}
|
|
90
104
|
catch (err) {
|
|
91
105
|
result = err;
|
|
@@ -96,29 +110,10 @@ const __dirname = __path__.dirname(__filename);`.trim(),
|
|
|
96
110
|
}
|
|
97
111
|
}
|
|
98
112
|
return {
|
|
99
|
-
program: this.#resultCache.program,
|
|
100
113
|
watchFileSet: this.#resultCache.watchFileSet,
|
|
101
114
|
affectedFileSet: this.#resultCache.affectedFileSet,
|
|
102
|
-
results:
|
|
103
|
-
|
|
104
|
-
type: "build",
|
|
105
|
-
filePath: warn.location?.file !== undefined ? path.resolve(warn.location.file) : undefined,
|
|
106
|
-
line: warn.location?.line,
|
|
107
|
-
char: warn.location?.column,
|
|
108
|
-
code: warn.text.slice(0, warn.text.indexOf(":")),
|
|
109
|
-
severity: "warning",
|
|
110
|
-
message: `(${warn.pluginName}) ${warn.text.slice(warn.text.indexOf(":") + 1)}`,
|
|
111
|
-
})),
|
|
112
|
-
...result.errors.map((err) => ({
|
|
113
|
-
type: "build",
|
|
114
|
-
filePath: err.location?.file !== undefined ? path.resolve(err.location.file) : undefined,
|
|
115
|
-
line: err.location?.line,
|
|
116
|
-
char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
|
|
117
|
-
code: err.text.slice(0, err.text.indexOf(":")),
|
|
118
|
-
severity: "error",
|
|
119
|
-
message: `(${err.pluginName}) ${err.text.slice(err.text.indexOf(":") + 1)}`,
|
|
120
|
-
})),
|
|
121
|
-
],
|
|
115
|
+
results: SdCliConvertMessageUtil.convertToBuildMessagesFromEsbuild(result, this._opt.pkgPath),
|
|
116
|
+
emitFileSet: emitFileSet,
|
|
122
117
|
};
|
|
123
118
|
}
|
|
124
119
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdServerBundler.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/SdServerBundler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import esbuild from "esbuild";
|
|
2
|
+
import { ISdCliServerPluginResultCache } from "../../types/build-plugin.type";
|
|
3
|
+
import { TNormPath } from "@simplysm/sd-core-node";
|
|
4
|
+
export declare function createSdServerPlugin(conf: {
|
|
5
|
+
pkgPath: TNormPath;
|
|
6
|
+
dev: boolean;
|
|
7
|
+
modifiedFileSet: Set<TNormPath>;
|
|
8
|
+
result: ISdCliServerPluginResultCache;
|
|
9
|
+
watchScopePaths: TNormPath[];
|
|
10
|
+
}): esbuild.Plugin;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
|
|
2
|
+
import { PathUtil } from "@simplysm/sd-core-node";
|
|
3
|
+
import { SdTsCompileWorker } from "../../ts-builder/SdTsCompileWorker";
|
|
4
|
+
export function createSdServerPlugin(conf) {
|
|
5
|
+
return {
|
|
6
|
+
name: "sd-server-compile",
|
|
7
|
+
setup: async (build) => {
|
|
8
|
+
const tsCompiler = await SdTsCompileWorker.new({
|
|
9
|
+
pkgPath: conf.pkgPath,
|
|
10
|
+
additionalOptions: { declaration: false },
|
|
11
|
+
isDevMode: conf.dev,
|
|
12
|
+
isForBundle: true,
|
|
13
|
+
watchScopePaths: conf.watchScopePaths,
|
|
14
|
+
});
|
|
15
|
+
let tsCompileResult;
|
|
16
|
+
build.onStart(async () => {
|
|
17
|
+
tsCompileResult = await tsCompiler.compileAsync(conf.modifiedFileSet);
|
|
18
|
+
conf.result.watchFileSet = tsCompileResult.watchFileSet;
|
|
19
|
+
conf.result.affectedFileSet = tsCompileResult.affectedFileSet;
|
|
20
|
+
//-- return err/warn
|
|
21
|
+
return SdCliConvertMessageUtil.convertToEsbuildFromBuildMessages(tsCompileResult.messages, conf.pkgPath);
|
|
22
|
+
});
|
|
23
|
+
build.onLoad({ filter: /\.ts$/ }, (args) => {
|
|
24
|
+
const emittedJsFile = tsCompileResult.emittedFilesCacheMap.get(PathUtil.norm(args.path))?.last();
|
|
25
|
+
if (!emittedJsFile) {
|
|
26
|
+
throw new Error(`ts 빌더 결과 emit 파일이 존재하지 않습니다. ${args.path}`);
|
|
27
|
+
}
|
|
28
|
+
const contents = emittedJsFile.text;
|
|
29
|
+
return { contents, loader: "js" };
|
|
30
|
+
});
|
|
31
|
+
build.onLoad({ filter: /\.[cm]?js$/ }, (args) => {
|
|
32
|
+
conf.result.watchFileSet.add(PathUtil.norm(args.path));
|
|
33
|
+
return null;
|
|
34
|
+
});
|
|
35
|
+
build.onLoad({
|
|
36
|
+
filter: new RegExp("(" +
|
|
37
|
+
Object.keys(build.initialOptions.loader)
|
|
38
|
+
.map((item) => "\\" + item)
|
|
39
|
+
.join("|") +
|
|
40
|
+
")$"),
|
|
41
|
+
}, (args) => {
|
|
42
|
+
conf.result.watchFileSet.add(PathUtil.norm(args.path));
|
|
43
|
+
return null;
|
|
44
|
+
});
|
|
45
|
+
build.onEnd((result) => {
|
|
46
|
+
conf.result.outputFiles = result.outputFiles;
|
|
47
|
+
conf.result.metafile = result.metafile;
|
|
48
|
+
conf.modifiedFileSet.clear();
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=createSdServerPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSdServerPlugin.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/createSdServerPlugin.ts"],"names":[],"mappings":"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"}
|