@simplysm/sd-cli 7.0.305 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/builder/SdCliClientBuilder.mjs +62 -10
- package/dist/builder/SdCliTsLibBuilder.mjs +2 -2
- package/dist/commons.d.ts +2 -1
- package/dist/entry-points/SdCliPrepare.mjs +53 -22
- package/dist/entry-points/SdCliProjectGenerator.mjs +32 -25
- package/dist/entry-points/file/base/fc_package_npmconfig.mjs +2 -1
- package/dist/entry-points/file/project/fc_project_gitignore.mjs +12 -2
- package/dist/entry-points/file/project/fc_project_npmconfig.mjs +9 -7
- package/dist/entry-points/file/project/fc_project_yarnrc.d.ts +1 -0
- package/dist/entry-points/file/project/fc_project_yarnrc.mjs +19 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +2 -1
- package/dist/ng-tools/SdCliNgModuleGenerator.d.ts +2 -1
- package/dist/ng-tools/SdCliNgModuleGenerator.mjs +41 -21
- package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +17 -5
- package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +19 -7
- package/dist/ng-tools/babel/SdCliBbUtil.d.ts +2 -2
- package/dist/ng-tools/babel/SdCliBbUtil.mjs +3 -3
- package/dist/ng-tools/babel/TSdCliBbTypeMetadata.d.ts +13 -2
- package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +25 -1
- package/dist/utils/SdCliBuildResultUtil.mjs +3 -3
- package/docs/conf-orm.md +1 -1
- package/package.json +46 -42
- package/src/builder/SdCliClientBuilder.ts +68 -9
- package/src/builder/SdCliTsLibBuilder.ts +1 -1
- package/src/commons.ts +2 -1
- package/src/entry-points/SdCliPrepare.ts +52 -21
- package/src/entry-points/SdCliProjectGenerator.ts +34 -25
- package/src/entry-points/file/base/fc_package_npmconfig.ts +1 -0
- package/src/entry-points/file/project/fc_project_gitignore.ts +11 -1
- package/src/entry-points/file/project/fc_project_npmconfig.ts +8 -6
- package/src/entry-points/file/project/fc_project_yarnrc.ts +18 -0
- package/src/index.ts +1 -0
- package/src/ng-tools/SdCliNgModuleGenerator.ts +53 -20
- package/src/ng-tools/babel/SdCliBbFileMetadata.ts +16 -2
- package/src/ng-tools/babel/SdCliBbRootMetadata.ts +22 -6
- package/src/ng-tools/babel/SdCliBbUtil.ts +4 -4
- package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +36 -1
- package/src/utils/SdCliBuildResultUtil.ts +3 -2
|
@@ -124,4 +124,28 @@ export class SdCliBbArrayMetadata {
|
|
|
124
124
|
return this._valueCache;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
export class SdCliBbConditionMetadata {
|
|
128
|
+
constructor(_fileMeta, _metadata) {
|
|
129
|
+
this._fileMeta = _fileMeta;
|
|
130
|
+
this._metadata = _metadata;
|
|
131
|
+
}
|
|
132
|
+
get test() {
|
|
133
|
+
if (this._testCache === undefined) {
|
|
134
|
+
this._testCache = this._fileMeta.getMetaFromRaw(this._metadata.test);
|
|
135
|
+
}
|
|
136
|
+
return this._testCache;
|
|
137
|
+
}
|
|
138
|
+
get consequent() {
|
|
139
|
+
if (this._consequentCache === undefined) {
|
|
140
|
+
this._consequentCache = this._fileMeta.getMetaFromRaw(this._metadata.consequent);
|
|
141
|
+
}
|
|
142
|
+
return this._consequentCache;
|
|
143
|
+
}
|
|
144
|
+
get alternate() {
|
|
145
|
+
if (this._alternateCache === undefined) {
|
|
146
|
+
this._alternateCache = this._fileMeta.getMetaFromRaw(this._metadata.alternate);
|
|
147
|
+
}
|
|
148
|
+
return this._alternateCache;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVFNkQ2xpQmJUeXBlTWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmctdG9vbHMvYmFiZWwvVFNkQ2xpQmJUeXBlTWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFHakIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBRXRCLE1BQU0sc0JBQXNCLENBQUM7QUFVOUIsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQyxTQUE4QixFQUM5QixRQUEwQjtRQUQxQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUM5RCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFJRCxJQUFXLE1BQU07UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNyRTtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDMUMsSUFDRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLHNCQUFzQixD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
|
|
@@ -38,8 +38,8 @@ export class SdCliBuildResultUtil {
|
|
|
38
38
|
static _convertFromWebpackError(severity, err) {
|
|
39
39
|
return {
|
|
40
40
|
filePath: err.file ?? err.module?.["request"],
|
|
41
|
-
line: err.file ? err.loc["start"]?.line : undefined,
|
|
42
|
-
char: err.file ? err.loc["start"]?.column : undefined,
|
|
41
|
+
line: err.file ? err.loc?.["start"]?.line : undefined,
|
|
42
|
+
char: err.file ? err.loc?.["start"]?.column : undefined,
|
|
43
43
|
code: err.name,
|
|
44
44
|
severity,
|
|
45
45
|
message: err.message
|
|
@@ -60,4 +60,4 @@ export class SdCliBuildResultUtil {
|
|
|
60
60
|
return str;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCdWlsZFJlc3VsdFV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvU2RDbGlCdWlsZFJlc3VsdFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFJeEIsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBbUI7UUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQ3RFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzNELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUVoQyxNQUFNLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFHMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIs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
|
package/docs/conf-orm.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/sd-cli",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"description": "심플리즘 패키지 - CLI",
|
|
5
5
|
"author": "김석래",
|
|
6
6
|
"repository": {
|
|
@@ -20,57 +20,61 @@
|
|
|
20
20
|
"**/*"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@angular-
|
|
24
|
-
"@angular/
|
|
25
|
-
"@angular/
|
|
26
|
-
"@angular
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
29
|
-
"@
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@simplysm/sd-
|
|
34
|
-
"@simplysm/sd-
|
|
35
|
-
"
|
|
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",
|
|
29
|
+
"@babel/parser": "^7.18.11",
|
|
30
|
+
"@babel/types": "^7.18.10",
|
|
31
|
+
"@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",
|
|
38
|
+
"browserslist": "^4.21.3",
|
|
36
39
|
"chokidar": "^3.5.3",
|
|
37
40
|
"connect": "^3.7.0",
|
|
38
|
-
"copy-webpack-plugin": "^
|
|
41
|
+
"copy-webpack-plugin": "^11.0.0",
|
|
39
42
|
"cordova": "^11.0.0",
|
|
40
|
-
"css-loader": "^6.
|
|
41
|
-
"electron": "^
|
|
42
|
-
"electron-builder": "^23.
|
|
43
|
-
"electron-rebuild": "^3.2.
|
|
44
|
-
"eslint": "^8.
|
|
45
|
-
"eslint-webpack-plugin": "^3.
|
|
46
|
-
"jsdom": "^
|
|
47
|
-
"jszip": "^3.
|
|
48
|
-
"license-webpack-plugin": "^4.0.
|
|
43
|
+
"css-loader": "^6.7.1",
|
|
44
|
+
"electron": "^20.0.2",
|
|
45
|
+
"electron-builder": "^23.3.3",
|
|
46
|
+
"electron-rebuild": "^3.2.9",
|
|
47
|
+
"eslint": "^8.21.0",
|
|
48
|
+
"eslint-webpack-plugin": "^3.2.0",
|
|
49
|
+
"jsdom": "^20.0.0",
|
|
50
|
+
"jszip": "^3.10.1",
|
|
51
|
+
"license-webpack-plugin": "^4.0.2",
|
|
49
52
|
"mime": "^3.0.0",
|
|
50
|
-
"mini-css-extract-plugin": "^2.
|
|
51
|
-
"node-polyfill-webpack-plugin": "^
|
|
53
|
+
"mini-css-extract-plugin": "^2.6.1",
|
|
54
|
+
"node-polyfill-webpack-plugin": "^2.0.1",
|
|
52
55
|
"resolve-url-loader": "^5.0.0",
|
|
53
|
-
"
|
|
54
|
-
"sass
|
|
55
|
-
"
|
|
56
|
-
"
|
|
56
|
+
"rxjs": "^7.5.6",
|
|
57
|
+
"sass": "^1.54.4",
|
|
58
|
+
"sass-loader": "^13.0.2",
|
|
59
|
+
"semver": "^7.3.7",
|
|
60
|
+
"source-map-loader": "^4.0.0",
|
|
57
61
|
"source-map-support": "^0.5.21",
|
|
58
|
-
"terser-webpack-plugin": "^5.3.
|
|
59
|
-
"ts-loader": "^9.
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
+
"terser-webpack-plugin": "^5.3.3",
|
|
63
|
+
"ts-loader": "^9.3.1",
|
|
64
|
+
"typedoc": "^0.23.10",
|
|
65
|
+
"typescript": "~4.7.4",
|
|
66
|
+
"webpack": "^5.74.0",
|
|
62
67
|
"xml2js": "^0.4.23",
|
|
63
|
-
"yargs": "^17.
|
|
64
|
-
"
|
|
65
|
-
"@compodoc/compodoc": "^1.1.7"
|
|
68
|
+
"yargs": "^17.5.1",
|
|
69
|
+
"zone.js": "~0.11.4"
|
|
66
70
|
},
|
|
67
71
|
"devDependencies": {
|
|
68
72
|
"@types/connect": "^3.4.35",
|
|
69
|
-
"@types/jsdom": "^
|
|
70
|
-
"@types/mime": "^
|
|
71
|
-
"@types/semver": "^7.3.
|
|
73
|
+
"@types/jsdom": "^20.0.0",
|
|
74
|
+
"@types/mime": "^3.0.1",
|
|
75
|
+
"@types/semver": "^7.3.11",
|
|
72
76
|
"@types/source-map-support": "^0.5.4",
|
|
73
|
-
"@types/xml2js": "^0.4.
|
|
74
|
-
"@types/yargs": "^17.0.
|
|
77
|
+
"@types/xml2js": "^0.4.11",
|
|
78
|
+
"@types/yargs": "^17.0.11"
|
|
75
79
|
}
|
|
76
80
|
}
|
|
@@ -33,7 +33,7 @@ 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
|
|
36
|
+
import mf from "@angular-architects/module-federation/webpack";
|
|
37
37
|
import LintResult = ESLint.LintResult;
|
|
38
38
|
|
|
39
39
|
export class SdCliClientBuilder extends EventEmitter {
|
|
@@ -403,6 +403,16 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
403
403
|
// 버전쓰기
|
|
404
404
|
FsUtil.writeFile(path.resolve(this._cacheBasePath, "version"), versionHash);
|
|
405
405
|
|
|
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
|
+
|
|
406
416
|
let prevProgressMessage = "";
|
|
407
417
|
return {
|
|
408
418
|
mode: watch ? "development" : "production",
|
|
@@ -414,8 +424,12 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
414
424
|
extensions: [".ts", ".tsx", ".mjs", ".cjs", ".js", ".jsx"],
|
|
415
425
|
symlinks: true,
|
|
416
426
|
modules: [this._projRootPath, "node_modules"],
|
|
417
|
-
mainFields: ["es2015", "browser", "module", "main"],
|
|
418
|
-
conditionNames: ["es2015", "..."],
|
|
427
|
+
mainFields: ["es2020", "es2015", "browser", "module", "main"],
|
|
428
|
+
conditionNames: ["es2020", "es2015", "..."],
|
|
429
|
+
|
|
430
|
+
...this._config.moduleFederation ? {
|
|
431
|
+
alias: sharedMappings.getAliases()
|
|
432
|
+
} : {}
|
|
419
433
|
},
|
|
420
434
|
resolveLoader: {
|
|
421
435
|
symlinks: true
|
|
@@ -438,7 +452,11 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
438
452
|
libraryTarget: undefined,
|
|
439
453
|
crossOriginLoading: false,
|
|
440
454
|
trustedTypes: "angular#bundler",
|
|
441
|
-
scriptType: "module"
|
|
455
|
+
scriptType: "module",
|
|
456
|
+
|
|
457
|
+
...this._config.moduleFederation ? {
|
|
458
|
+
publicPath: "auto"
|
|
459
|
+
} : {}
|
|
442
460
|
},
|
|
443
461
|
watch: false,
|
|
444
462
|
watchOptions: {
|
|
@@ -451,7 +469,12 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
451
469
|
/Add postcss as project dependency/,
|
|
452
470
|
/"@charset" must be the first rule in the file/
|
|
453
471
|
],
|
|
454
|
-
experiments: {
|
|
472
|
+
experiments: {
|
|
473
|
+
backCompat: false,
|
|
474
|
+
syncWebAssembly: true,
|
|
475
|
+
asyncWebAssembly: true,
|
|
476
|
+
...this._config.moduleFederation ? { outputModule: true } : {}
|
|
477
|
+
},
|
|
455
478
|
infrastructureLogging: { level: "error" },
|
|
456
479
|
stats: "errors-warnings",
|
|
457
480
|
// externals: extModules.toObject((item) => item.name, (item) => item.exists ? "commonjs2 " + item.name : `var {name: '${item.name}'}`),
|
|
@@ -518,7 +541,11 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
518
541
|
test: /[\\/]node_modules[\\/]/
|
|
519
542
|
} : false
|
|
520
543
|
}
|
|
521
|
-
}
|
|
544
|
+
},
|
|
545
|
+
|
|
546
|
+
...this._config.moduleFederation ? {
|
|
547
|
+
runtimeChunk: false
|
|
548
|
+
} : {}
|
|
522
549
|
},
|
|
523
550
|
module: {
|
|
524
551
|
strictExportPresence: true,
|
|
@@ -792,10 +819,42 @@ export class SdCliClientBuilder extends EventEmitter {
|
|
|
792
819
|
return resultMessages.join(os.EOL);
|
|
793
820
|
}
|
|
794
821
|
}),
|
|
795
|
-
...this._config.moduleFederation ? [
|
|
822
|
+
...this._config.moduleFederation === "remote" ? [
|
|
796
823
|
new webpack.container.ModuleFederationPlugin({
|
|
797
|
-
|
|
798
|
-
|
|
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()
|
|
799
858
|
] : []
|
|
800
859
|
] as any[]
|
|
801
860
|
};
|
|
@@ -52,7 +52,7 @@ export class SdCliTsLibBuilder extends EventEmitter {
|
|
|
52
52
|
this._logger = Logger.get(["simplysm", "sd-cli", this.constructor.name, npmConfig.name]);
|
|
53
53
|
|
|
54
54
|
// isAngular
|
|
55
|
-
this._isAngular =
|
|
55
|
+
this._isAngular = !!this._config.angular;
|
|
56
56
|
this._hasAngularRoute = SdCliNpmConfigUtil.getDependencies(npmConfig).defaults.includes("@angular/router");
|
|
57
57
|
|
|
58
58
|
// tsconfig
|
package/src/commons.ts
CHANGED
|
@@ -56,6 +56,7 @@ export type TSdCliPackageConfig = ISdCliLibPackageConfig | ISdCliServerPackageCo
|
|
|
56
56
|
|
|
57
57
|
export interface ISdCliLibPackageConfig {
|
|
58
58
|
type: "library";
|
|
59
|
+
angular?: boolean;
|
|
59
60
|
autoIndex?: {
|
|
60
61
|
polyfills?: string[];
|
|
61
62
|
};
|
|
@@ -74,7 +75,7 @@ export interface ISdCliServerPackageConfig {
|
|
|
74
75
|
|
|
75
76
|
export interface ISdCliClientPackageConfig {
|
|
76
77
|
type: "client";
|
|
77
|
-
moduleFederation?:
|
|
78
|
+
moduleFederation?: "host" | "remote";
|
|
78
79
|
builder?: {
|
|
79
80
|
web?: ISdCliClientBuilderWebConfig;
|
|
80
81
|
cordova?: ISdCliClientBuilderCordovaConfig;
|
|
@@ -24,30 +24,61 @@ export class SdCliPrepare {
|
|
|
24
24
|
currentNode = saveCurrentNode;
|
|
25
25
|
}
|
|
26
26
|
}`, `
|
|
27
|
+
|
|
27
28
|
function checkSourceElement(node) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
if (node) {
|
|
30
|
+
const prevUsage = process.cpuUsage();
|
|
31
|
+
|
|
32
|
+
var saveCurrentNode = currentNode;
|
|
33
|
+
currentNode = node;
|
|
34
|
+
instantiationCount = 0;
|
|
35
|
+
checkSourceElementWorker(node);
|
|
36
|
+
currentNode = saveCurrentNode;
|
|
37
|
+
|
|
38
|
+
const usage = process.cpuUsage(prevUsage);
|
|
39
|
+
const usageMs = Math.round((usage.user + usage.system) / 1000);
|
|
40
|
+
node.parent.childrenUsages = [...node.parent.childrenUsages ?? [], {
|
|
41
|
+
node,
|
|
42
|
+
usageMs,
|
|
43
|
+
childrenUsages: node.childrenUsages
|
|
44
|
+
}];
|
|
45
|
+
if (node.hasChildPerformanceWarning) {
|
|
46
|
+
node.parent.hasChildPerformanceWarning = true;
|
|
47
|
+
}
|
|
48
|
+
else if (usageMs > 1000 && node.kind !== 253) {
|
|
49
|
+
const sf = ts.getSourceFileOfNode(node);
|
|
50
|
+
|
|
51
|
+
const fn = (children, depth) => {
|
|
52
|
+
let result = "";
|
|
53
|
+
|
|
54
|
+
const largeChildren = children
|
|
55
|
+
.filter((item) => item.usageMs > 50)
|
|
56
|
+
.sort((p, n) => p.usageMs > n.usageMs ? -1 : p.usageMs < n.usageMs ? 1 : 0);
|
|
57
|
+
for (const child of largeChildren) {
|
|
58
|
+
const pos = sf.getLineAndCharacterOfPosition(child.node.getStart());
|
|
59
|
+
for(let i = 0 ; i < depth; i++){
|
|
60
|
+
result += " ";
|
|
61
|
+
}
|
|
62
|
+
result += sf.fileName.replace(/\\//g, "\\\\") + "(" + (pos.line + 1) + ", " + (pos.character + 1) + "): " + child.usageMs + "ms/cpu\\n";
|
|
63
|
+
|
|
64
|
+
result += fn(child.childrenUsages ?? [], depth + 1);
|
|
49
65
|
}
|
|
66
|
+
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const tree = fn(node.childrenUsages ?? [], 1);
|
|
71
|
+
|
|
72
|
+
error(node, {
|
|
73
|
+
code: 9000,
|
|
74
|
+
category: ts.DiagnosticCategory.Warning,
|
|
75
|
+
key: "simplysm_check_source_element_performance_slow",
|
|
76
|
+
message: ("소스코드 타입분석에 너무 오랜 시간이 소요됩니다. [" + usageMs + "ms/cpu]\\n" + tree).trim()
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
node.parent.hasChildPerformanceWarning = true;
|
|
50
80
|
}
|
|
81
|
+
}
|
|
51
82
|
}`);
|
|
52
83
|
await FsUtil.writeFileAsync(filePath, modifiedFileContent);
|
|
53
84
|
return modifiedFileContent.includes("const prevUsage = process.cpuUsage();");
|
|
@@ -26,6 +26,7 @@ import { fc_package_polyfills } from "./file/client/fc_package_polyfills";
|
|
|
26
26
|
import { fc_package_styles } from "./file/client/fc_package_styles";
|
|
27
27
|
import { ISdAutoIndexConfig } from "../build-tool/SdCliIndexFileGenerator";
|
|
28
28
|
import { fc_package_Page } from "./file/client/fc_package_Page";
|
|
29
|
+
import { fc_project_yarnrc } from "./file/project/fc_project_yarnrc";
|
|
29
30
|
|
|
30
31
|
export class SdCliProjectGenerator {
|
|
31
32
|
private readonly _logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
|
|
@@ -34,8 +35,8 @@ export class SdCliProjectGenerator {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
public async initAsync(opt: { name?: string; description: string; author: string; gitUrl: string }): Promise<void> {
|
|
37
|
-
if ((await FsUtil.readdirAsync(this._rootPath)).filter((item) => ![".idea", "
|
|
38
|
-
throw new Error("빈 디렉토리가 아닙니다. (
|
|
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 외의 파일/폴더가 존재하는 경우, 초기화할 수 없습니다.)");
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
const projName = opt.name ?? path.basename(this._rootPath);
|
|
@@ -52,6 +53,9 @@ export class SdCliProjectGenerator {
|
|
|
52
53
|
this._logger.log(`[${projName}] '.gitignore' 파일 생성`);
|
|
53
54
|
await FsUtil.writeFileAsync(path.resolve(this._rootPath, ".gitignore"), fc_project_gitignore());
|
|
54
55
|
|
|
56
|
+
this._logger.log(`[${projName}] '.yarnrc.yml' 파일 생성`);
|
|
57
|
+
await FsUtil.writeFileAsync(path.resolve(this._rootPath, ".gitignore"), fc_project_yarnrc());
|
|
58
|
+
|
|
55
59
|
this._logger.log(`[${projName}] 'package.json' 파일 생성`);
|
|
56
60
|
let cliVersion: string | undefined;
|
|
57
61
|
if (FsUtil.exists(path.resolve(this._rootPath, "package.json"))) {
|
|
@@ -77,11 +81,14 @@ export class SdCliProjectGenerator {
|
|
|
77
81
|
this._logger.log(`[${projName}] 'tsconfig.json' 파일 생성`);
|
|
78
82
|
await FsUtil.writeFileAsync(path.resolve(this._rootPath, "tsconfig.json"), fc_project_tsconfig());
|
|
79
83
|
|
|
84
|
+
this._logger.log(`[${projName}] 'yarn.lock' 파일 생성`);
|
|
85
|
+
await FsUtil.writeFileAsync(path.resolve(this._rootPath, "yarn.lock"), "");
|
|
86
|
+
|
|
80
87
|
this._logger.log(`[${projName}] 'packages' 디렉토리 생성`);
|
|
81
88
|
await FsUtil.mkdirsAsync(path.resolve(this._rootPath, "packages"));
|
|
82
89
|
|
|
83
|
-
this._logger.log(`[${projName}]
|
|
84
|
-
await SdProcess.spawnAsync("
|
|
90
|
+
this._logger.log(`[${projName}] yarn install`);
|
|
91
|
+
await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
|
|
85
92
|
}
|
|
86
93
|
|
|
87
94
|
public async addTsLibAsync(opt: { name: string; description: string; useDom: boolean; isForAngular: boolean }): Promise<void> {
|
|
@@ -105,6 +112,7 @@ export class SdCliProjectGenerator {
|
|
|
105
112
|
await this._addPackageToSimplysmJson({
|
|
106
113
|
name: opt.name,
|
|
107
114
|
type: "library",
|
|
115
|
+
...opt.isForAngular ? { angular: true } : {},
|
|
108
116
|
autoIndex: {
|
|
109
117
|
...opt.isForAngular ? {
|
|
110
118
|
polyfills: [
|
|
@@ -134,8 +142,8 @@ export class SdCliProjectGenerator {
|
|
|
134
142
|
types: "dist/index.d.ts",
|
|
135
143
|
main: "dist/index.cjs",
|
|
136
144
|
dependencies: {
|
|
137
|
-
"@simplysm/sd-core-common": "~7.
|
|
138
|
-
"@simplysm/sd-orm-common": "~7.
|
|
145
|
+
"@simplysm/sd-core-common": "~7.1.0",
|
|
146
|
+
"@simplysm/sd-orm-common": "~7.1.0"
|
|
139
147
|
},
|
|
140
148
|
tsconfigOptions: {}
|
|
141
149
|
});
|
|
@@ -155,8 +163,8 @@ export class SdCliProjectGenerator {
|
|
|
155
163
|
autoIndex: {}
|
|
156
164
|
});
|
|
157
165
|
|
|
158
|
-
this._logger.log(`[${projName}]
|
|
159
|
-
await SdProcess.spawnAsync("
|
|
166
|
+
this._logger.log(`[${projName}] yarn install`);
|
|
167
|
+
await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
|
|
160
168
|
}
|
|
161
169
|
|
|
162
170
|
public async addDbLibModelAsync(opt: { dbPkgName: string; category: string; name: string; description: string }): Promise<void> {
|
|
@@ -214,10 +222,10 @@ export class SdCliProjectGenerator {
|
|
|
214
222
|
isForAngular: false,
|
|
215
223
|
main: "dist/main.js",
|
|
216
224
|
dependencies: {
|
|
217
|
-
"@simplysm/sd-core-common": "~7.
|
|
218
|
-
"@simplysm/sd-core-node": "~7.
|
|
219
|
-
"@simplysm/sd-service-common": "~7.
|
|
220
|
-
"@simplysm/sd-service-server": "~7.
|
|
225
|
+
"@simplysm/sd-core-common": "~7.1.0",
|
|
226
|
+
"@simplysm/sd-core-node": "~7.1.0",
|
|
227
|
+
"@simplysm/sd-service-common": "~7.1.0",
|
|
228
|
+
"@simplysm/sd-service-server": "~7.1.0"
|
|
221
229
|
},
|
|
222
230
|
tsconfigOptions: {}
|
|
223
231
|
});
|
|
@@ -235,8 +243,8 @@ export class SdCliProjectGenerator {
|
|
|
235
243
|
type: "server"
|
|
236
244
|
});
|
|
237
245
|
|
|
238
|
-
this._logger.log(`[${projName}]
|
|
239
|
-
await SdProcess.spawnAsync("
|
|
246
|
+
this._logger.log(`[${projName}] yarn install`);
|
|
247
|
+
await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
|
|
240
248
|
}
|
|
241
249
|
|
|
242
250
|
public async addClientAsync(opt: { name: string; description: string; serverName: string }): Promise<void> {
|
|
@@ -253,8 +261,8 @@ export class SdCliProjectGenerator {
|
|
|
253
261
|
isModule: true,
|
|
254
262
|
isForAngular: true,
|
|
255
263
|
dependencies: {
|
|
256
|
-
"@angular/platform-browser": "^
|
|
257
|
-
"@angular/platform-browser-dynamic": "^
|
|
264
|
+
"@angular/platform-browser": "^14.1.1",
|
|
265
|
+
"@angular/platform-browser-dynamic": "^14.1.1"
|
|
258
266
|
},
|
|
259
267
|
tsconfigOptions: {
|
|
260
268
|
angularCompilerOptions: {
|
|
@@ -307,8 +315,8 @@ export class SdCliProjectGenerator {
|
|
|
307
315
|
serverName: opt.serverName
|
|
308
316
|
});
|
|
309
317
|
|
|
310
|
-
this._logger.log(`[${projName}]
|
|
311
|
-
await SdProcess.spawnAsync("
|
|
318
|
+
this._logger.log(`[${projName}] yarn install`);
|
|
319
|
+
await SdProcess.spawnAsync("yarn install", { cwd: this._rootPath }, true);
|
|
312
320
|
}
|
|
313
321
|
|
|
314
322
|
public async addPageAsync(opt: { pkgName: string; category?: string; name: string; isRouteParent: boolean }): Promise<void> {
|
|
@@ -348,12 +356,12 @@ export class SdCliProjectGenerator {
|
|
|
348
356
|
dependencies: {
|
|
349
357
|
...opt.dependencies,
|
|
350
358
|
...opt.isForAngular ? {
|
|
351
|
-
"@angular/common": "^
|
|
352
|
-
"@angular/core": "^
|
|
353
|
-
"@simplysm/sd-angular": "~7.
|
|
354
|
-
"@simplysm/sd-core-common": "~7.
|
|
355
|
-
"@simplysm/sd-core-browser": "~7.
|
|
356
|
-
"rxjs": "^
|
|
359
|
+
"@angular/common": "^14.1.1",
|
|
360
|
+
"@angular/core": "^14.1.1",
|
|
361
|
+
"@simplysm/sd-angular": "~7.1.0",
|
|
362
|
+
"@simplysm/sd-core-common": "~7.1.0",
|
|
363
|
+
"@simplysm/sd-core-browser": "~7.1.0",
|
|
364
|
+
"rxjs": "^7.5.6",
|
|
357
365
|
"zone.js": "~0.11.4"
|
|
358
366
|
} : {}
|
|
359
367
|
}
|
|
@@ -370,12 +378,13 @@ export class SdCliProjectGenerator {
|
|
|
370
378
|
await FsUtil.mkdirsAsync(path.resolve(pkgPath, "src"));
|
|
371
379
|
}
|
|
372
380
|
|
|
373
|
-
private async _addPackageToSimplysmJson(opt: { name: string; type: string; autoIndex?: ISdAutoIndexConfig; serverName?: string }): Promise<void> {
|
|
381
|
+
private async _addPackageToSimplysmJson(opt: { name: string; type: string; angular?: boolean; autoIndex?: ISdAutoIndexConfig; serverName?: string }): Promise<void> {
|
|
374
382
|
const config = await FsUtil.readJsonAsync(path.resolve(this._rootPath, "simplysm.json"));
|
|
375
383
|
config.packages = config.packages ?? {};
|
|
376
384
|
config.packages[opt.name] = {
|
|
377
385
|
type: opt.type,
|
|
378
386
|
...opt.autoIndex ? { autoIndex: opt.autoIndex } : {},
|
|
387
|
+
...opt.angular ? { angular: true } : {},
|
|
379
388
|
...opt.serverName !== undefined ? { server: opt.serverName } : {}
|
|
380
389
|
};
|
|
381
390
|
await FsUtil.writeJsonAsync(path.resolve(this._rootPath, "simplysm.json"), config, { space: 2 });
|
|
@@ -2,6 +2,16 @@ export const fc_project_gitignore = (): string => /* language=gitignore */ `
|
|
|
2
2
|
|
|
3
3
|
.idea/**/workspace.xml
|
|
4
4
|
.idea/shelf
|
|
5
|
+
|
|
6
|
+
.yarn/*
|
|
7
|
+
!.yarn/patches
|
|
8
|
+
!.yarn/plugins
|
|
9
|
+
!.yarn/releases
|
|
10
|
+
!.yarn/sdks
|
|
11
|
+
!.yarn/versions
|
|
12
|
+
!.yarn/cache
|
|
13
|
+
#.pnp.*
|
|
14
|
+
|
|
5
15
|
node_modules
|
|
6
16
|
tsconfig-build.json
|
|
7
17
|
dist
|
|
@@ -10,7 +20,7 @@ dist
|
|
|
10
20
|
_logs
|
|
11
21
|
_modules
|
|
12
22
|
_routes.ts
|
|
13
|
-
|
|
23
|
+
~$*
|
|
14
24
|
.*/
|
|
15
25
|
|
|
16
26
|
`.trim();
|