@simplysm/sd-cli 11.0.12 → 11.0.13

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.
@@ -12,7 +12,6 @@ export declare class SdNgBundler {
12
12
  private readonly _indexHtmlFilePath;
13
13
  private readonly _pkgName;
14
14
  private readonly _baseHref;
15
- private _depsMap?;
16
15
  constructor(_opt: {
17
16
  dev: boolean;
18
17
  outputPath: string;
@@ -1,18 +1,16 @@
1
1
  import { createCompilerPlugin } from "@angular-devkit/build-angular/src/tools/esbuild/angular/compiler-plugin";
2
2
  import path from "path";
3
- import { BundlerContext } from "@angular-devkit/build-angular/src/tools/esbuild/bundler-context";
4
3
  import { FsUtil, PathUtil } from "@simplysm/sd-core-node";
5
4
  import { fileURLToPath } from "url";
6
5
  import { createVirtualModulePlugin } from "@angular-devkit/build-angular/src/tools/esbuild/virtual-module-plugin";
7
6
  import { createSourcemapIgnorelistPlugin } from "@angular-devkit/build-angular/src/tools/esbuild/sourcemap-ignorelist-plugin";
8
7
  import nodeStdLibBrowser from "node-stdlib-browser";
9
8
  import nodeStdLibBrowserPlugin from "node-stdlib-browser/helpers/esbuild/plugin";
10
- import { ExecutionResult } from "@angular-devkit/build-angular/src/tools/esbuild/bundler-execution-result";
11
9
  import { copyAssets } from "@angular-devkit/build-angular/src/utils/copy-assets";
12
10
  import { extractLicenses } from "@angular-devkit/build-angular/src/tools/esbuild/license-extractor";
13
11
  import { augmentAppWithServiceWorkerEsbuild } from "@angular-devkit/build-angular/src/utils/service-worker";
14
12
  import browserslist from "browserslist";
15
- import { transformSupportedBrowsersToTargets } from "@angular-devkit/build-angular/src/tools/esbuild/utils";
13
+ import { createOutputFileFromText, transformSupportedBrowsersToTargets } from "@angular-devkit/build-angular/src/tools/esbuild/utils";
16
14
  import { createCssResourcePlugin } from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/css-resource-plugin";
17
15
  import { CssStylesheetLanguage } from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/css-language";
18
16
  import { SassStylesheetLanguage } from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/sass-language";
@@ -21,6 +19,7 @@ import { IndexHtmlGenerator } from "@angular-devkit/build-angular/src/utils/inde
21
19
  import { CrossOrigin } from "@angular-devkit/build-angular";
22
20
  import { InlineCriticalCssProcessor } from "@angular-devkit/build-angular/src/utils/index-file/inline-critical-css";
23
21
  import { SdSourceFileCache } from "../utils/SdSourceFileCache";
22
+ import { SdNgBundlerContext } from "./SdNgBundlerContext";
24
23
  export class SdNgBundler {
25
24
  constructor(_opt) {
26
25
  this._opt = _opt;
@@ -45,60 +44,39 @@ export class SdNgBundler {
45
44
  this._contexts.push(this._getStyleContext());
46
45
  }
47
46
  //-- build
48
- const bundlingResult = await BundlerContext.bundleAll(this._contexts);
49
- const results = [
50
- ...bundlingResult.warnings.map((warn) => ({
51
- filePath: warn.location?.file !== undefined ? path.resolve(this._opt.pkgPath, warn.location.file) : undefined,
52
- line: warn.location?.line,
53
- char: warn.location?.column,
54
- code: undefined,
55
- severity: "warning",
56
- message: warn.text.replace(/^(NG|TS)[0-9]+: /, ""),
57
- type: "build"
58
- })),
59
- ...bundlingResult.errors?.map((err) => ({
60
- filePath: err.location?.file !== undefined ? path.resolve(this._opt.pkgPath, err.location.file) : undefined,
61
- line: err.location?.line,
62
- char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
63
- code: undefined,
64
- severity: "error",
65
- message: err.text.replace(/^[^:]*: /, ""),
66
- type: "build"
67
- })) ?? []
68
- ];
47
+ const bundlingResults = await this._contexts.mapAsync(async (ctx) => await ctx.bundleAsync());
48
+ const results = bundlingResults.mapMany(bundlingResult => bundlingResult.results);
69
49
  const watchFilePaths = [
70
50
  ...this._sourceFileCache.keys(),
71
51
  ...this._sourceFileCache.babelFileCache.keys(),
72
52
  ...this._sourceFileCache.loadResultCache.fileDependencies.keys()
73
53
  ].map((item) => path.resolve(item)).distinct();
74
54
  let affectedSourceFilePaths = watchFilePaths.filter((item) => PathUtil.isChildPath(item, this._opt.pkgPath));
75
- if (bundlingResult.errors) {
76
- // TODO: 제대로 deps를 적용해야함.. 코드 분석 필요
77
- this._depsMap = this._depsMap ?? new Map();
78
- }
79
- else {
80
- this._depsMap = new Map();
81
- for (const entry of Object.entries(bundlingResult.metafile.inputs)) {
82
- for (const imp of entry[1].imports) {
83
- const deps = this._depsMap.getOrCreate(path.resolve(this._opt.pkgPath, imp.path), new Set());
84
- deps.add(path.resolve(this._opt.pkgPath, entry[0]));
55
+ if (this._sourceFileCache.modifiedFiles.size > 0) {
56
+ const depMap = new Map();
57
+ for (const bundlingResult of bundlingResults) {
58
+ for (const [k, v] of bundlingResult.dependencyMap) {
59
+ const currSet = depMap.getOrCreate(k, new Set());
60
+ currSet.adds(...v);
85
61
  }
86
62
  }
87
- }
88
- const searchAffectedFiles = (filePath, prev) => {
89
- const result = new Set(prev);
90
- const importerPaths = this._depsMap.get(filePath);
91
- if (!importerPaths)
92
- return result;
93
- for (const importerPath of importerPaths) {
94
- if (result.has(importerPath))
95
- continue;
96
- result.adds(importerPath);
97
- result.adds(...searchAffectedFiles(importerPath, result));
63
+ for (const [k, v] of this._sourceFileCache.loadResultCache.fileDependencies) {
64
+ const currSet = depMap.getOrCreate(k, new Set());
65
+ currSet.adds(...Array.from(v).map((item) => item.startsWith("file:") ? fileURLToPath(item) : undefined).filterExists());
98
66
  }
99
- return result;
100
- };
101
- if (this._sourceFileCache.modifiedFiles.size > 0) {
67
+ const searchAffectedFiles = (filePath, prev) => {
68
+ const result = new Set(prev);
69
+ const importerPaths = depMap.get(filePath);
70
+ if (!importerPaths)
71
+ return result;
72
+ for (const importerPath of importerPaths) {
73
+ if (result.has(importerPath))
74
+ continue;
75
+ result.adds(importerPath);
76
+ result.adds(...searchAffectedFiles(importerPath, result));
77
+ }
78
+ return result;
79
+ };
102
80
  const affectedFilePathSet = new Set();
103
81
  for (const modFile of this._sourceFileCache.modifiedFiles) {
104
82
  affectedFilePathSet.add(path.resolve(modFile));
@@ -106,15 +84,20 @@ export class SdNgBundler {
106
84
  }
107
85
  affectedSourceFilePaths = Array.from(affectedFilePathSet.values()).filter((item) => PathUtil.isChildPath(item, this._opt.pkgPath));
108
86
  }
109
- if (bundlingResult.errors) {
110
- return {
111
- filePaths: watchFilePaths,
112
- affectedFilePaths: affectedSourceFilePaths,
113
- results
114
- };
87
+ /*const executionResult = new ExecutionResult(this._contexts, this._sourceFileCache);
88
+ executionResult.outputFiles.push(...bundlingResult.outputFiles);*/
89
+ const outputFiles = bundlingResults.mapMany(item => item.outputFiles ?? []);
90
+ const initialFiles = new Map();
91
+ const metafile = {
92
+ inputs: {},
93
+ outputs: {}
94
+ };
95
+ for (const bundlingResult of bundlingResults) {
96
+ bundlingResult.initialFiles.forEach((v, k) => initialFiles.set(k, v));
97
+ metafile.inputs = { ...metafile.inputs, ...bundlingResult.metafile?.inputs };
98
+ metafile.outputs = { ...metafile.outputs, ...bundlingResult.metafile?.outputs };
115
99
  }
116
- const executionResult = new ExecutionResult(this._contexts, this._sourceFileCache);
117
- executionResult.outputFiles.push(...bundlingResult.outputFiles);
100
+ const assetFiles = [];
118
101
  //-- Check commonjs
119
102
  // if (!this._opt.dev) {
120
103
  // const messages = checkCommonJSModules(bundlingResult.metafile, []);
@@ -131,7 +114,7 @@ export class SdNgBundler {
131
114
  // }
132
115
  // }
133
116
  //-- index
134
- const genIndexHtmlResult = await this._genIndexHtmlAsync(bundlingResult.outputFiles, bundlingResult.initialFiles);
117
+ const genIndexHtmlResult = await this._genIndexHtmlAsync(outputFiles, initialFiles);
135
118
  for (const warning of genIndexHtmlResult.warnings) {
136
119
  results.push({
137
120
  filePath: undefined,
@@ -154,19 +137,19 @@ export class SdNgBundler {
154
137
  type: "build",
155
138
  });
156
139
  }
157
- executionResult.addOutputFile("index.html", genIndexHtmlResult.content);
140
+ outputFiles.push(createOutputFileFromText("index.html", genIndexHtmlResult.content));
158
141
  //-- copy assets
159
- executionResult.assetFiles.push(...(await this._copyAssetsAsync()));
142
+ assetFiles.push(...(await this._copyAssetsAsync()));
160
143
  //-- extract 3rdpartylicenses
161
144
  if (!this._opt.dev) {
162
- executionResult.addOutputFile('3rdpartylicenses.txt', await extractLicenses(bundlingResult.metafile, this._opt.pkgPath));
145
+ outputFiles.push(createOutputFileFromText('3rdpartylicenses.txt', await extractLicenses(metafile, this._opt.pkgPath)));
163
146
  }
164
147
  //-- service worker
165
148
  if (FsUtil.exists(this._swConfFilePath)) {
166
149
  try {
167
- const serviceWorkerResult = await this._genServiceWorkerAsync(executionResult.outputFiles, executionResult.assetFiles);
168
- executionResult.addOutputFile('ngsw.json', serviceWorkerResult.manifest);
169
- executionResult.assetFiles.push(...serviceWorkerResult.assetFiles);
150
+ const serviceWorkerResult = await this._genServiceWorkerAsync(outputFiles, assetFiles);
151
+ outputFiles.push(createOutputFileFromText('ngsw.json', serviceWorkerResult.manifest));
152
+ assetFiles.push(...serviceWorkerResult.assetFiles);
170
153
  }
171
154
  catch (err) {
172
155
  results.push({
@@ -181,7 +164,7 @@ export class SdNgBundler {
181
164
  }
182
165
  }
183
166
  //-- write
184
- for (const outputFile of executionResult.outputFiles) {
167
+ for (const outputFile of outputFiles) {
185
168
  const distFilePath = path.resolve(this._opt.outputPath, outputFile.path);
186
169
  const prev = this._outputCache.get(distFilePath);
187
170
  if (prev !== Buffer.from(outputFile.contents).toString("base64")) {
@@ -189,7 +172,7 @@ export class SdNgBundler {
189
172
  this._outputCache.set(distFilePath, Buffer.from(outputFile.contents).toString("base64"));
190
173
  }
191
174
  }
192
- for (const assetFile of executionResult.assetFiles) {
175
+ for (const assetFile of assetFiles) {
193
176
  const prev = this._outputCache.get(assetFile.source);
194
177
  const curr = FsUtil.lstat(assetFile.source).mtime.getTime();
195
178
  if (prev !== curr) {
@@ -309,7 +292,7 @@ export class SdNgBundler {
309
292
  return await augmentAppWithServiceWorkerEsbuild(this._opt.pkgPath, this._swConfFilePath, this._baseHref, outputFiles, assetFiles);
310
293
  }
311
294
  async _getAppContextAsync() {
312
- return new BundlerContext(this._opt.pkgPath, true, {
295
+ return new SdNgBundlerContext(this._opt.pkgPath, {
313
296
  absWorkingDir: this._opt.pkgPath,
314
297
  bundle: true,
315
298
  keepNames: true,
@@ -421,7 +404,7 @@ export class SdNgBundler {
421
404
  sourcemap: this._opt.dev,
422
405
  includePaths: []
423
406
  }, this._sourceFileCache.loadResultCache);
424
- return new BundlerContext(this._opt.pkgPath, true, {
407
+ return new SdNgBundlerContext(this._opt.pkgPath, {
425
408
  absWorkingDir: this._opt.pkgPath,
426
409
  bundle: true,
427
410
  entryNames: '[name]',
@@ -454,7 +437,7 @@ export class SdNgBundler {
454
437
  pluginFactory.create(CssStylesheetLanguage),
455
438
  createCssResourcePlugin(this._sourceFileCache.loadResultCache),
456
439
  ],
457
- }, () => true);
440
+ });
458
441
  }
459
442
  }
460
443
  //# sourceMappingURL=SdNgBundler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SdNgBundler.js","sourceRoot":"","sources":["../../src/build-tools/SdNgBundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdNgBundler.js","sourceRoot":"","sources":["../../src/build-tools/SdNgBundler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import esbuild from "esbuild";
2
+ import { InitialFileRecord } from "@angular-devkit/build-angular/src/tools/esbuild/bundler-context";
3
+ import { ISdCliPackageBuildResult } from "../commons";
4
+ export declare class SdNgBundlerContext {
5
+ private readonly _pkgPath;
6
+ private readonly _esbuildOptions;
7
+ private _context?;
8
+ constructor(_pkgPath: string, _esbuildOptions: esbuild.BuildOptions);
9
+ bundleAsync(): Promise<{
10
+ results: ISdCliPackageBuildResult[];
11
+ initialFiles: Map<string, InitialFileRecord>;
12
+ outputFiles: esbuild.OutputFile[] | undefined;
13
+ dependencyMap: Map<string, Set<string>>;
14
+ metafile: esbuild.Metafile | undefined;
15
+ }>;
16
+ }
@@ -0,0 +1,98 @@
1
+ import esbuild from "esbuild";
2
+ import path from "path";
3
+ export class SdNgBundlerContext {
4
+ constructor(_pkgPath, _esbuildOptions) {
5
+ this._pkgPath = _pkgPath;
6
+ this._esbuildOptions = _esbuildOptions;
7
+ }
8
+ async bundleAsync() {
9
+ if (this._context == null) {
10
+ this._context = await esbuild.context(this._esbuildOptions);
11
+ }
12
+ let buildResult;
13
+ try {
14
+ buildResult = await this._context.rebuild();
15
+ }
16
+ catch (err) {
17
+ if ("warnings" in err || "errors" in err) {
18
+ buildResult = err;
19
+ }
20
+ else {
21
+ throw err;
22
+ }
23
+ }
24
+ const results = [
25
+ ...buildResult.warnings.map((warn) => ({
26
+ filePath: warn.location?.file !== undefined ? path.resolve(this._pkgPath, warn.location.file) : undefined,
27
+ line: warn.location?.line,
28
+ char: warn.location?.column,
29
+ code: undefined,
30
+ severity: "warning",
31
+ message: warn.text.replace(/^(NG|TS)[0-9]+: /, ""),
32
+ type: "build"
33
+ })),
34
+ ...buildResult.errors?.map((err) => ({
35
+ filePath: err.location?.file !== undefined ? path.resolve(this._pkgPath, err.location.file) : undefined,
36
+ line: err.location?.line,
37
+ char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
38
+ code: undefined,
39
+ severity: "error",
40
+ message: err.text.replace(/^[^:]*: /, ""),
41
+ type: "build"
42
+ }))
43
+ ];
44
+ const initialFiles = new Map();
45
+ for (const outputFile of buildResult.outputFiles ?? []) {
46
+ const relativeFilePath = path.relative(this._pkgPath, outputFile.path);
47
+ const entryPoint = buildResult.metafile?.outputs[relativeFilePath]?.entryPoint;
48
+ outputFile.path = relativeFilePath;
49
+ if (entryPoint != null) {
50
+ const name = path.basename(relativeFilePath).split('.', 1)[0];
51
+ const type = path.extname(relativeFilePath) === '.css' ? 'style' : 'script';
52
+ if (this._esbuildOptions.entryPoints?.[name] != null) {
53
+ initialFiles.set(relativeFilePath, {
54
+ name,
55
+ type,
56
+ entrypoint: true,
57
+ });
58
+ }
59
+ }
60
+ }
61
+ const files = [...initialFiles.keys()];
62
+ for (const file of files) {
63
+ for (const initialImport of buildResult.metafile?.outputs[file]?.imports ?? []) {
64
+ if (initialFiles.has(initialImport.path)) {
65
+ continue;
66
+ }
67
+ if (initialImport.kind === 'import-statement' || initialImport.kind === 'import-rule') {
68
+ const record = {
69
+ type: initialImport.kind === 'import-rule' ? 'style' : 'script',
70
+ entrypoint: false,
71
+ external: initialImport.external,
72
+ };
73
+ initialFiles.set(initialImport.path, record);
74
+ if (!initialImport.external) {
75
+ files.push(initialImport.path);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ const dependencyMap = new Map();
81
+ if (buildResult.metafile) {
82
+ for (const [key, val] of Object.entries(buildResult.metafile.inputs)) {
83
+ for (const imp of val.imports) {
84
+ const deps = dependencyMap.getOrCreate(path.resolve(this._pkgPath, imp.path), new Set());
85
+ deps.add(path.resolve(this._pkgPath, key));
86
+ }
87
+ }
88
+ }
89
+ return {
90
+ results,
91
+ initialFiles,
92
+ outputFiles: buildResult.outputFiles,
93
+ dependencyMap,
94
+ metafile: buildResult.metafile
95
+ };
96
+ }
97
+ }
98
+ //# sourceMappingURL=SdNgBundlerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdNgBundlerContext.js","sourceRoot":"","sources":["../../src/build-tools/SdNgBundlerContext.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./build-tools/SdCliIndexFileGenerator";
3
3
  export * from "./build-tools/SdCliNgRoutesFileGenerator";
4
4
  export * from "./build-tools/SdLinter";
5
5
  export * from "./build-tools/SdNgBundler";
6
+ export * from "./build-tools/SdNgBundlerContext";
6
7
  export * from "./build-tools/SdTsBundler";
7
8
  export * from "./build-tools/SdTsCompiler";
8
9
  export * from "./builders/SdCliClientBuilder";
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export * from "./build-tools/SdCliIndexFileGenerator";
3
3
  export * from "./build-tools/SdCliNgRoutesFileGenerator";
4
4
  export * from "./build-tools/SdLinter";
5
5
  export * from "./build-tools/SdNgBundler";
6
+ export * from "./build-tools/SdNgBundlerContext";
6
7
  export * from "./build-tools/SdTsBundler";
7
8
  export * from "./build-tools/SdTsCompiler";
8
9
  export * from "./builders/SdCliClientBuilder";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC"}
@@ -15,11 +15,7 @@ export class SdMemoryLoadResultCache extends MemoryLoadResultCache {
15
15
  for (const watchFile of result.watchFiles) {
16
16
  // Normalize the watch file path to ensure OS consistent paths
17
17
  const watchFilePath = path.resolve(watchFile);
18
- let affected = this.fileDependencies.get(watchFilePath);
19
- if (affected === undefined) {
20
- affected = new Set();
21
- this.fileDependencies.set(watchFilePath, affected);
22
- }
18
+ let affected = this.fileDependencies.getOrCreate(watchFilePath, new Set());
23
19
  affected.add(putPath);
24
20
  }
25
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SdMemoryLoadResultCache.js","sourceRoot":"","sources":["../../src/utils/SdMemoryLoadResultCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,mEAAmE,CAAC;AAExG,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;IAAlE;;QACE,gBAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAqCpD,CAAC;IAnCU,GAAG,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEQ,GAAG,CAAC,OAAe,EAAE,MAAoB;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,8DAA8D;gBAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACxD,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;iBACpD;gBACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACvB;SACF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEQ,UAAU,CAAC,cAAsB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC9C;QAED,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAElD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"SdMemoryLoadResultCache.js","sourceRoot":"","sources":["../../src/utils/SdMemoryLoadResultCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,mEAAmE,CAAC;AAExG,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,OAAO,uBAAwB,SAAQ,qBAAqB;IAAlE;;QACE,gBAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC9C,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAiCpD,CAAC;IA/BU,GAAG,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEQ,GAAG,CAAC,OAAe,EAAE,MAAoB;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,8DAA8D;gBAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC3E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACvB;SACF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEQ,UAAU,CAAC,cAAsB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SAC9C;QAED,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAElD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "11.0.12",
3
+ "version": "11.0.13",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -17,16 +17,16 @@
17
17
  "node": "^16"
18
18
  },
19
19
  "dependencies": {
20
- "@angular-devkit/build-angular": "^16.2.7",
21
- "@angular/common": "^16.2.10",
22
- "@angular/compiler": "^16.2.10",
23
- "@angular/compiler-cli": "^16.2.10",
24
- "@angular/core": "^16.2.10",
20
+ "@angular-devkit/build-angular": "^16.2.8",
21
+ "@angular/common": "^16.2.11",
22
+ "@angular/compiler": "^16.2.11",
23
+ "@angular/compiler-cli": "^16.2.11",
24
+ "@angular/core": "^16.2.11",
25
25
  "@electron/rebuild": "^3.3.0",
26
- "@simplysm/sd-core-common": "11.0.12",
27
- "@simplysm/sd-core-node": "11.0.12",
28
- "@simplysm/sd-service-server": "11.0.12",
29
- "@simplysm/sd-storage": "11.0.12",
26
+ "@simplysm/sd-core-common": "11.0.13",
27
+ "@simplysm/sd-core-node": "11.0.13",
28
+ "@simplysm/sd-service-server": "11.0.13",
29
+ "@simplysm/sd-storage": "11.0.13",
30
30
  "browserslist": "^4.22.1",
31
31
  "cordova": "^12.0.0",
32
32
  "electron": "^27.0.2",
@@ -36,7 +36,7 @@
36
36
  "eslint": "^8.52.0",
37
37
  "node-stdlib-browser": "^1.2.0",
38
38
  "rxjs": "^7.8.1",
39
- "sass": "^1.69.4",
39
+ "sass": "^1.69.5",
40
40
  "semver": "^7.5.4",
41
41
  "xml2js": "^0.6.2",
42
42
  "yargs": "^17.7.2",
@@ -1,7 +1,7 @@
1
1
  import {createCompilerPlugin} from "@angular-devkit/build-angular/src/tools/esbuild/angular/compiler-plugin";
2
2
  import path from "path";
3
- import {BundlerContext, InitialFileRecord} from "@angular-devkit/build-angular/src/tools/esbuild/bundler-context";
4
- import esbuild from "esbuild";
3
+ import {InitialFileRecord} from "@angular-devkit/build-angular/src/tools/esbuild/bundler-context";
4
+ import esbuild, {Metafile} from "esbuild";
5
5
  import {FsUtil, PathUtil} from "@simplysm/sd-core-node";
6
6
  import {fileURLToPath} from "url";
7
7
  import {createVirtualModulePlugin} from "@angular-devkit/build-angular/src/tools/esbuild/virtual-module-plugin";
@@ -10,13 +10,15 @@ import {
10
10
  } from "@angular-devkit/build-angular/src/tools/esbuild/sourcemap-ignorelist-plugin";
11
11
  import nodeStdLibBrowser from "node-stdlib-browser";
12
12
  import nodeStdLibBrowserPlugin from "node-stdlib-browser/helpers/esbuild/plugin";
13
- import {ExecutionResult} from "@angular-devkit/build-angular/src/tools/esbuild/bundler-execution-result";
14
13
  import {INpmConfig, ISdCliPackageBuildResult} from "../commons";
15
14
  import {copyAssets} from "@angular-devkit/build-angular/src/utils/copy-assets";
16
15
  import {extractLicenses} from "@angular-devkit/build-angular/src/tools/esbuild/license-extractor";
17
16
  import {augmentAppWithServiceWorkerEsbuild} from "@angular-devkit/build-angular/src/utils/service-worker";
18
17
  import browserslist from "browserslist";
19
- import {transformSupportedBrowsersToTargets} from "@angular-devkit/build-angular/src/tools/esbuild/utils";
18
+ import {
19
+ createOutputFileFromText,
20
+ transformSupportedBrowsersToTargets
21
+ } from "@angular-devkit/build-angular/src/tools/esbuild/utils";
20
22
  import {createCssResourcePlugin} from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/css-resource-plugin";
21
23
  import {CssStylesheetLanguage} from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/css-language";
22
24
  import {SassStylesheetLanguage} from "@angular-devkit/build-angular/src/tools/esbuild/stylesheets/sass-language";
@@ -32,11 +34,12 @@ import {Entrypoint} from "@angular-devkit/build-angular/src/utils/index-file/aug
32
34
  import {CrossOrigin} from "@angular-devkit/build-angular";
33
35
  import {InlineCriticalCssProcessor} from "@angular-devkit/build-angular/src/utils/index-file/inline-critical-css";
34
36
  import {SdSourceFileCache} from "../utils/SdSourceFileCache";
37
+ import {SdNgBundlerContext} from "./SdNgBundlerContext";
35
38
 
36
39
  export class SdNgBundler {
37
40
  private readonly _sourceFileCache = new SdSourceFileCache();
38
41
 
39
- private _contexts: BundlerContext[] | undefined;
42
+ private _contexts: SdNgBundlerContext[] | undefined;
40
43
 
41
44
  private readonly _outputCache = new Map<string, string | number>();
42
45
 
@@ -49,8 +52,6 @@ export class SdNgBundler {
49
52
  private readonly _pkgName: string;
50
53
  private readonly _baseHref: string;
51
54
 
52
- private _depsMap?: Map<string, Set<string>>;
53
-
54
55
  public constructor(private readonly _opt: {
55
56
  dev: boolean;
56
57
  outputPath: string;
@@ -85,28 +86,10 @@ export class SdNgBundler {
85
86
  }
86
87
 
87
88
  //-- build
88
- const bundlingResult = await BundlerContext.bundleAll(this._contexts);
89
+ const bundlingResults = await this._contexts.mapAsync(async ctx => await ctx.bundleAsync());
90
+
91
+ const results = bundlingResults.mapMany(bundlingResult => bundlingResult.results);
89
92
 
90
- const results = [
91
- ...bundlingResult.warnings.map((warn) => ({
92
- filePath: warn.location?.file !== undefined ? path.resolve(this._opt.pkgPath, warn.location.file) : undefined,
93
- line: warn.location?.line,
94
- char: warn.location?.column,
95
- code: undefined,
96
- severity: "warning",
97
- message: warn.text.replace(/^(NG|TS)[0-9]+: /, ""),
98
- type: "build"
99
- })),
100
- ...bundlingResult.errors?.map((err) => ({
101
- filePath: err.location?.file !== undefined ? path.resolve(this._opt.pkgPath, err.location.file) : undefined,
102
- line: err.location?.line,
103
- char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
104
- code: undefined,
105
- severity: "error",
106
- message: err.text.replace(/^[^:]*: /, ""),
107
- type: "build"
108
- })) ?? []
109
- ] as ISdCliPackageBuildResult[];
110
93
  const watchFilePaths = [
111
94
  ...this._sourceFileCache.keys(),
112
95
  ...this._sourceFileCache.babelFileCache.keys(),
@@ -115,36 +98,34 @@ export class SdNgBundler {
115
98
 
116
99
  let affectedSourceFilePaths = watchFilePaths.filter((item) => PathUtil.isChildPath(item, this._opt.pkgPath));
117
100
 
118
- if (bundlingResult.errors) {
119
- // TODO: 제대로 deps를 적용해야함.. 코드 분석 필요
120
- this._depsMap = this._depsMap ?? new Map<string, Set<string>>();
121
- }
122
- else {
123
- this._depsMap = new Map<string, Set<string>>();
124
- for (const entry of Object.entries(bundlingResult.metafile.inputs)) {
125
- for (const imp of entry[1].imports) {
126
- const deps = this._depsMap.getOrCreate(path.resolve(this._opt.pkgPath, imp.path), new Set<string>());
127
- deps.add(path.resolve(this._opt.pkgPath, entry[0]));
101
+ if (this._sourceFileCache.modifiedFiles.size > 0) {
102
+ const depMap = new Map<string, Set<string>>();
103
+ for (const bundlingResult of bundlingResults) {
104
+ for(const [k, v] of bundlingResult.dependencyMap){
105
+ const currSet = depMap.getOrCreate(k, new Set<string>());
106
+ currSet.adds(...v);
128
107
  }
129
108
  }
130
- }
109
+ for (const [k, v] of this._sourceFileCache.loadResultCache.fileDependencies) {
110
+ const currSet = depMap.getOrCreate(k, new Set<string>());
111
+ currSet.adds(...Array.from(v).map((item) => item.startsWith("file:") ? fileURLToPath(item) : undefined).filterExists());
112
+ }
131
113
 
132
- const searchAffectedFiles = (filePath: string, prev?: Set<string>): Set<string> => {
133
- const result = new Set<string>(prev);
114
+ const searchAffectedFiles = (filePath: string, prev?: Set<string>): Set<string> => {
115
+ const result = new Set<string>(prev);
134
116
 
135
- const importerPaths = this._depsMap!.get(filePath);
136
- if (!importerPaths) return result;
117
+ const importerPaths = depMap.get(filePath);
118
+ if (!importerPaths) return result;
137
119
 
138
- for (const importerPath of importerPaths) {
139
- if (result.has(importerPath)) continue;
140
- result.adds(importerPath);
141
- result.adds(...searchAffectedFiles(importerPath, result));
142
- }
120
+ for (const importerPath of importerPaths) {
121
+ if (result.has(importerPath)) continue;
122
+ result.adds(importerPath);
123
+ result.adds(...searchAffectedFiles(importerPath, result));
124
+ }
143
125
 
144
- return result;
145
- };
126
+ return result;
127
+ };
146
128
 
147
- if (this._sourceFileCache.modifiedFiles.size > 0) {
148
129
  const affectedFilePathSet = new Set<string>();
149
130
  for (const modFile of this._sourceFileCache.modifiedFiles) {
150
131
  affectedFilePathSet.add(path.resolve(modFile));
@@ -153,16 +134,26 @@ export class SdNgBundler {
153
134
  affectedSourceFilePaths = Array.from(affectedFilePathSet.values()).filter((item) => PathUtil.isChildPath(item, this._opt.pkgPath));
154
135
  }
155
136
 
156
- if (bundlingResult.errors) {
157
- return {
158
- filePaths: watchFilePaths,
159
- affectedFilePaths: affectedSourceFilePaths,
160
- results
161
- };
162
- }
163
137
 
164
- const executionResult = new ExecutionResult(this._contexts, this._sourceFileCache);
165
- executionResult.outputFiles.push(...bundlingResult.outputFiles);
138
+ /*const executionResult = new ExecutionResult(this._contexts, this._sourceFileCache);
139
+ executionResult.outputFiles.push(...bundlingResult.outputFiles);*/
140
+
141
+
142
+ const outputFiles = bundlingResults.mapMany(item => item.outputFiles ?? []);
143
+ const initialFiles = new Map<string, InitialFileRecord>();
144
+ const metafile: {
145
+ inputs: Metafile["inputs"],
146
+ outputs: Metafile["outputs"]
147
+ } = {
148
+ inputs: {},
149
+ outputs: {}
150
+ };
151
+ for (const bundlingResult of bundlingResults) {
152
+ bundlingResult.initialFiles.forEach((v, k) => initialFiles.set(k, v));
153
+ metafile.inputs = {...metafile.inputs, ...bundlingResult.metafile?.inputs};
154
+ metafile.outputs = {...metafile.outputs, ...bundlingResult.metafile?.outputs};
155
+ }
156
+ const assetFiles: { source: string; destination: string }[] = [];
166
157
 
167
158
  //-- Check commonjs
168
159
  // if (!this._opt.dev) {
@@ -181,10 +172,8 @@ export class SdNgBundler {
181
172
  // }
182
173
 
183
174
  //-- index
184
- const genIndexHtmlResult = await this._genIndexHtmlAsync(
185
- bundlingResult.outputFiles,
186
- bundlingResult.initialFiles
187
- );
175
+
176
+ const genIndexHtmlResult = await this._genIndexHtmlAsync(outputFiles, initialFiles);
188
177
  for (const warning of genIndexHtmlResult.warnings) {
189
178
  results.push({
190
179
  filePath: undefined,
@@ -207,25 +196,22 @@ export class SdNgBundler {
207
196
  type: "build",
208
197
  });
209
198
  }
210
- executionResult.addOutputFile("index.html", genIndexHtmlResult.content);
199
+ outputFiles.push(createOutputFileFromText("index.html", genIndexHtmlResult.content));
211
200
 
212
201
  //-- copy assets
213
- executionResult.assetFiles.push(...(await this._copyAssetsAsync()));
202
+ assetFiles.push(...(await this._copyAssetsAsync()));
214
203
 
215
204
  //-- extract 3rdpartylicenses
216
205
  if (!this._opt.dev) {
217
- executionResult.addOutputFile('3rdpartylicenses.txt', await extractLicenses(bundlingResult.metafile, this._opt.pkgPath));
206
+ outputFiles.push(createOutputFileFromText('3rdpartylicenses.txt', await extractLicenses(metafile, this._opt.pkgPath)));
218
207
  }
219
208
 
220
209
  //-- service worker
221
210
  if (FsUtil.exists(this._swConfFilePath)) {
222
211
  try {
223
- const serviceWorkerResult = await this._genServiceWorkerAsync(
224
- executionResult.outputFiles,
225
- executionResult.assetFiles
226
- );
227
- executionResult.addOutputFile('ngsw.json', serviceWorkerResult.manifest);
228
- executionResult.assetFiles.push(...serviceWorkerResult.assetFiles);
212
+ const serviceWorkerResult = await this._genServiceWorkerAsync(outputFiles, assetFiles);
213
+ outputFiles.push(createOutputFileFromText('ngsw.json', serviceWorkerResult.manifest));
214
+ assetFiles.push(...serviceWorkerResult.assetFiles);
229
215
  }
230
216
  catch (err) {
231
217
  results.push({
@@ -241,7 +227,7 @@ export class SdNgBundler {
241
227
  }
242
228
 
243
229
  //-- write
244
- for (const outputFile of executionResult.outputFiles) {
230
+ for (const outputFile of outputFiles) {
245
231
  const distFilePath = path.resolve(this._opt.outputPath, outputFile.path);
246
232
 
247
233
  const prev = this._outputCache.get(distFilePath);
@@ -250,7 +236,7 @@ export class SdNgBundler {
250
236
  this._outputCache.set(distFilePath, Buffer.from(outputFile.contents).toString("base64"));
251
237
  }
252
238
  }
253
- for (const assetFile of executionResult.assetFiles) {
239
+ for (const assetFile of assetFiles) {
254
240
  const prev = this._outputCache.get(assetFile.source);
255
241
  const curr = FsUtil.lstat(assetFile.source).mtime.getTime();
256
242
  if (prev !== curr) {
@@ -408,122 +394,118 @@ export class SdNgBundler {
408
394
  );
409
395
  }
410
396
 
411
- private async _getAppContextAsync(): Promise<BundlerContext> {
412
- return new BundlerContext(
413
- this._opt.pkgPath,
414
- true,
415
- {
416
- absWorkingDir: this._opt.pkgPath,
417
- bundle: true,
418
- keepNames: true,
419
- format: 'esm',
420
- assetNames: 'media/[name]',
421
- conditions: ['es2020', 'es2015', 'module'],
422
- resolveExtensions: ['.ts', '.tsx', '.mjs', '.js'],
423
- metafile: true,
424
- legalComments: this._opt.dev ? 'eof' : 'none',
425
- logLevel: 'silent',
426
- minifyIdentifiers: !this._opt.dev,
427
- minifySyntax: !this._opt.dev,
428
- minifyWhitespace: !this._opt.dev,
429
- pure: ['forwardRef'],
430
- outdir: this._opt.pkgPath,
431
- outExtension: undefined,
432
- sourcemap: this._opt.dev,
433
- splitting: true,
434
- chunkNames: 'chunk-[hash]',
435
- tsconfig: this._tsConfigFilePath,
436
- external: [],
437
- write: false,
438
- preserveSymlinks: false,
439
- define: {
440
- ...!this._opt.dev ? {ngDevMode: 'false'} : {},
441
- ngJitMode: 'false',
442
- global: 'global',
443
- process: 'process',
444
- Buffer: 'Buffer',
445
- 'process.env.SD_VERSION': JSON.stringify(this._pkgNpmConf.version),
446
- "process.env.NODE_ENV": JSON.stringify(this._opt.dev ? "development" : "production"),
447
- ...this._opt.env ? Object.keys(this._opt.env).toObject(
448
- key => `process.env.${key}`,
449
- key => JSON.stringify(this._opt.env![key])
450
- ) : {}
451
- },
452
- platform: 'browser',
453
- mainFields: ['es2020', 'es2015', 'browser', 'module', 'main'],
454
- entryNames: '[name]',
455
- entryPoints: {
456
- main: this._mainFilePath,
457
- polyfills: 'angular:polyfills',
458
- ...this._opt.builderType === "cordova" ? {
459
- "cordova-entry": path.resolve(path.dirname(fileURLToPath(import.meta.url)), `../../lib/cordova-entry.js`)
460
- } : {}
461
- },
462
- target: this._browserTarget,
463
- supported: {'async-await': false, 'object-rest-spread': false},
464
- loader: {
465
- ".png": "file",
466
- ".jpeg": "file",
467
- ".jpg": "file",
468
- ".jfif": "file",
469
- ".gif": "file",
470
- ".svg": "file",
471
- ".woff": "file",
472
- ".woff2": "file",
473
- ".ttf": "file",
474
- ".eot": "file",
475
- ".ico": "file",
476
- ".otf": "file",
477
- ".csv": "file",
478
- ".xlsx": "file",
479
- ".xls": "file",
480
- ".pptx": "file",
481
- ".ppt": "file",
482
- ".docx": "file",
483
- ".doc": "file",
484
- ".zip": "file",
485
- ".pfx": "file",
486
- ".pkl": "file"
487
- },
488
- inject: [PathUtil.posix(fileURLToPath(await import.meta.resolve!("node-stdlib-browser/helpers/esbuild/shim")))],
489
- plugins: [
490
- createVirtualModulePlugin({
491
- namespace: "angular:polyfills",
492
- loadContent: () => ({
493
- contents: `import "./src/polyfills.ts";`,
494
- loader: 'js',
495
- resolveDir: this._opt.pkgPath
496
- })
497
- }) as esbuild.Plugin,
498
- createSourcemapIgnorelistPlugin(),
499
- createCompilerPlugin({
500
- sourcemap: this._opt.dev,
501
- thirdPartySourcemaps: false,
502
- tsconfig: this._tsConfigFilePath,
503
- jit: false,
504
- advancedOptimizations: true,
505
- fileReplacements: undefined,
506
- sourceFileCache: this._sourceFileCache,
507
- loadResultCache: this._sourceFileCache.loadResultCache
508
- }, {
509
- workspaceRoot: this._opt.pkgPath,
510
- optimization: !this._opt.dev,
511
- sourcemap: this._opt.dev ? 'inline' : false,
512
- outputNames: {bundles: '[name]', media: 'media/[name]'},
513
- includePaths: [],
514
- externalDependencies: [],
515
- target: this._browserTarget,
516
- inlineStyleLanguage: 'scss',
517
- preserveSymlinks: false,
518
- tailwindConfiguration: undefined
519
- }) as esbuild.Plugin,
520
- nodeStdLibBrowserPlugin(nodeStdLibBrowser)
521
- ]
522
- }
523
- );
397
+ private async _getAppContextAsync(): Promise<SdNgBundlerContext> {
398
+ return new SdNgBundlerContext(this._opt.pkgPath, {
399
+ absWorkingDir: this._opt.pkgPath,
400
+ bundle: true,
401
+ keepNames: true,
402
+ format: 'esm',
403
+ assetNames: 'media/[name]',
404
+ conditions: ['es2020', 'es2015', 'module'],
405
+ resolveExtensions: ['.ts', '.tsx', '.mjs', '.js'],
406
+ metafile: true,
407
+ legalComments: this._opt.dev ? 'eof' : 'none',
408
+ logLevel: 'silent',
409
+ minifyIdentifiers: !this._opt.dev,
410
+ minifySyntax: !this._opt.dev,
411
+ minifyWhitespace: !this._opt.dev,
412
+ pure: ['forwardRef'],
413
+ outdir: this._opt.pkgPath,
414
+ outExtension: undefined,
415
+ sourcemap: this._opt.dev,
416
+ splitting: true,
417
+ chunkNames: 'chunk-[hash]',
418
+ tsconfig: this._tsConfigFilePath,
419
+ external: [],
420
+ write: false,
421
+ preserveSymlinks: false,
422
+ define: {
423
+ ...!this._opt.dev ? {ngDevMode: 'false'} : {},
424
+ ngJitMode: 'false',
425
+ global: 'global',
426
+ process: 'process',
427
+ Buffer: 'Buffer',
428
+ 'process.env.SD_VERSION': JSON.stringify(this._pkgNpmConf.version),
429
+ "process.env.NODE_ENV": JSON.stringify(this._opt.dev ? "development" : "production"),
430
+ ...this._opt.env ? Object.keys(this._opt.env).toObject(
431
+ key => `process.env.${key}`,
432
+ key => JSON.stringify(this._opt.env![key])
433
+ ) : {}
434
+ },
435
+ platform: 'browser',
436
+ mainFields: ['es2020', 'es2015', 'browser', 'module', 'main'],
437
+ entryNames: '[name]',
438
+ entryPoints: {
439
+ main: this._mainFilePath,
440
+ polyfills: 'angular:polyfills',
441
+ ...this._opt.builderType === "cordova" ? {
442
+ "cordova-entry": path.resolve(path.dirname(fileURLToPath(import.meta.url)), `../../lib/cordova-entry.js`)
443
+ } : {}
444
+ },
445
+ target: this._browserTarget,
446
+ supported: {'async-await': false, 'object-rest-spread': false},
447
+ loader: {
448
+ ".png": "file",
449
+ ".jpeg": "file",
450
+ ".jpg": "file",
451
+ ".jfif": "file",
452
+ ".gif": "file",
453
+ ".svg": "file",
454
+ ".woff": "file",
455
+ ".woff2": "file",
456
+ ".ttf": "file",
457
+ ".eot": "file",
458
+ ".ico": "file",
459
+ ".otf": "file",
460
+ ".csv": "file",
461
+ ".xlsx": "file",
462
+ ".xls": "file",
463
+ ".pptx": "file",
464
+ ".ppt": "file",
465
+ ".docx": "file",
466
+ ".doc": "file",
467
+ ".zip": "file",
468
+ ".pfx": "file",
469
+ ".pkl": "file"
470
+ },
471
+ inject: [PathUtil.posix(fileURLToPath(await import.meta.resolve!("node-stdlib-browser/helpers/esbuild/shim")))],
472
+ plugins: [
473
+ createVirtualModulePlugin({
474
+ namespace: "angular:polyfills",
475
+ loadContent: () => ({
476
+ contents: `import "./src/polyfills.ts";`,
477
+ loader: 'js',
478
+ resolveDir: this._opt.pkgPath
479
+ })
480
+ }) as esbuild.Plugin,
481
+ createSourcemapIgnorelistPlugin(),
482
+ createCompilerPlugin({
483
+ sourcemap: this._opt.dev,
484
+ thirdPartySourcemaps: false,
485
+ tsconfig: this._tsConfigFilePath,
486
+ jit: false,
487
+ advancedOptimizations: true,
488
+ fileReplacements: undefined,
489
+ sourceFileCache: this._sourceFileCache,
490
+ loadResultCache: this._sourceFileCache.loadResultCache
491
+ }, {
492
+ workspaceRoot: this._opt.pkgPath,
493
+ optimization: !this._opt.dev,
494
+ sourcemap: this._opt.dev ? 'inline' : false,
495
+ outputNames: {bundles: '[name]', media: 'media/[name]'},
496
+ includePaths: [],
497
+ externalDependencies: [],
498
+ target: this._browserTarget,
499
+ inlineStyleLanguage: 'scss',
500
+ preserveSymlinks: false,
501
+ tailwindConfiguration: undefined
502
+ }) as esbuild.Plugin,
503
+ nodeStdLibBrowserPlugin(nodeStdLibBrowser)
504
+ ]
505
+ });
524
506
  }
525
507
 
526
- private _getStyleContext(): BundlerContext {
508
+ private _getStyleContext(): SdNgBundlerContext {
527
509
  const browserTarget = transformSupportedBrowsersToTargets(browserslist("defaults and fully supports es6-module"));
528
510
 
529
511
  const pluginFactory = new StylesheetPluginFactory(
@@ -534,44 +516,39 @@ export class SdNgBundler {
534
516
  this._sourceFileCache.loadResultCache,
535
517
  );
536
518
 
537
- return new BundlerContext(
538
- this._opt.pkgPath,
539
- true,
540
- {
541
- absWorkingDir: this._opt.pkgPath,
542
- bundle: true,
543
- entryNames: '[name]',
544
- assetNames: 'media/[name]',
545
- logLevel: 'silent',
546
- minify: !this._opt.dev,
547
- metafile: true,
548
- sourcemap: this._opt.dev,
549
- outdir: this._opt.pkgPath,
550
- write: false,
551
- platform: 'browser',
552
- target: browserTarget,
553
- preserveSymlinks: false,
554
- external: [],
555
- conditions: ['style', 'sass'],
556
- mainFields: ['style', 'sass'],
557
- legalComments: !this._opt.dev ? "none" : "eof",
558
- entryPoints: {styles: 'angular:styles/global;styles'},
559
- plugins: [
560
- createVirtualModulePlugin({
561
- namespace: "angular:styles/global",
562
- transformPath: (currPath) => currPath.split(';', 2)[1],
563
- loadContent: () => ({
564
- contents: `@import 'src/styles.scss';`,
565
- loader: 'css',
566
- resolveDir: this._opt.pkgPath
567
- }),
519
+ return new SdNgBundlerContext(this._opt.pkgPath, {
520
+ absWorkingDir: this._opt.pkgPath,
521
+ bundle: true,
522
+ entryNames: '[name]',
523
+ assetNames: 'media/[name]',
524
+ logLevel: 'silent',
525
+ minify: !this._opt.dev,
526
+ metafile: true,
527
+ sourcemap: this._opt.dev,
528
+ outdir: this._opt.pkgPath,
529
+ write: false,
530
+ platform: 'browser',
531
+ target: browserTarget,
532
+ preserveSymlinks: false,
533
+ external: [],
534
+ conditions: ['style', 'sass'],
535
+ mainFields: ['style', 'sass'],
536
+ legalComments: !this._opt.dev ? "none" : "eof",
537
+ entryPoints: {styles: 'angular:styles/global;styles'},
538
+ plugins: [
539
+ createVirtualModulePlugin({
540
+ namespace: "angular:styles/global",
541
+ transformPath: (currPath) => currPath.split(';', 2)[1],
542
+ loadContent: () => ({
543
+ contents: `@import 'src/styles.scss';`,
544
+ loader: 'css',
545
+ resolveDir: this._opt.pkgPath
568
546
  }),
569
- pluginFactory.create(SassStylesheetLanguage),
570
- pluginFactory.create(CssStylesheetLanguage),
571
- createCssResourcePlugin(this._sourceFileCache.loadResultCache),
572
- ],
573
- },
574
- () => true
575
- );
547
+ }),
548
+ pluginFactory.create(SassStylesheetLanguage),
549
+ pluginFactory.create(CssStylesheetLanguage),
550
+ createCssResourcePlugin(this._sourceFileCache.loadResultCache),
551
+ ],
552
+ });
576
553
  }
577
554
  }
@@ -0,0 +1,116 @@
1
+ import esbuild from "esbuild";
2
+ import path from "path";
3
+ import {InitialFileRecord} from "@angular-devkit/build-angular/src/tools/esbuild/bundler-context";
4
+ import {ISdCliPackageBuildResult} from "../commons";
5
+
6
+ export class SdNgBundlerContext {
7
+ private _context?: esbuild.BuildContext;
8
+
9
+ public constructor(private readonly _pkgPath: string,
10
+ private readonly _esbuildOptions: esbuild.BuildOptions) {
11
+ }
12
+
13
+ public async bundleAsync() {
14
+ if (this._context == null) {
15
+ this._context = await esbuild.context(this._esbuildOptions);
16
+ }
17
+
18
+ let buildResult: esbuild.BuildResult;
19
+
20
+ try {
21
+ buildResult = await this._context.rebuild();
22
+ }
23
+ catch (err) {
24
+ if ("warnings" in err || "errors" in err) {
25
+ buildResult = err;
26
+ }
27
+ else{
28
+ throw err;
29
+ }
30
+ }
31
+
32
+ const results = [
33
+ ...buildResult.warnings.map((warn) => ({
34
+ filePath: warn.location?.file !== undefined ? path.resolve(this._pkgPath, warn.location.file) : undefined,
35
+ line: warn.location?.line,
36
+ char: warn.location?.column,
37
+ code: undefined,
38
+ severity: "warning",
39
+ message: warn.text.replace(/^(NG|TS)[0-9]+: /, ""),
40
+ type: "build"
41
+ })),
42
+ ...buildResult.errors?.map((err) => ({
43
+ filePath: err.location?.file !== undefined ? path.resolve(this._pkgPath, err.location.file) : undefined,
44
+ line: err.location?.line,
45
+ char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
46
+ code: undefined,
47
+ severity: "error",
48
+ message: err.text.replace(/^[^:]*: /, ""),
49
+ type: "build"
50
+ }))
51
+ ] as ISdCliPackageBuildResult[];
52
+
53
+ const initialFiles = new Map<string, InitialFileRecord>();
54
+
55
+ for (const outputFile of buildResult.outputFiles ?? []) {
56
+ const relativeFilePath = path.relative(this._pkgPath, outputFile.path);
57
+ const entryPoint = buildResult.metafile?.outputs[relativeFilePath]?.entryPoint;
58
+
59
+ outputFile.path = relativeFilePath;
60
+
61
+ if (entryPoint != null) {
62
+ const name = path.basename(relativeFilePath).split('.', 1)[0];
63
+ const type = path.extname(relativeFilePath) === '.css' ? 'style' : 'script';
64
+
65
+ if (this._esbuildOptions.entryPoints?.[name] != null) {
66
+ initialFiles.set(relativeFilePath, {
67
+ name,
68
+ type,
69
+ entrypoint: true,
70
+ });
71
+ }
72
+ }
73
+ }
74
+
75
+ const files = [...initialFiles.keys()];
76
+ for (const file of files) {
77
+ for (const initialImport of buildResult.metafile?.outputs[file]?.imports ?? []) {
78
+ if (initialFiles.has(initialImport.path)) {
79
+ continue;
80
+ }
81
+
82
+ if (initialImport.kind === 'import-statement' || initialImport.kind === 'import-rule') {
83
+ const record: InitialFileRecord = {
84
+ type: initialImport.kind === 'import-rule' ? 'style' : 'script',
85
+ entrypoint: false,
86
+ external: initialImport.external,
87
+ };
88
+
89
+ initialFiles.set(initialImport.path, record);
90
+
91
+ if (!initialImport.external) {
92
+ files.push(initialImport.path);
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ const dependencyMap = new Map<string, Set<string>>();
99
+ if (buildResult.metafile) {
100
+ for (const [key, val] of Object.entries(buildResult.metafile.inputs)) {
101
+ for (const imp of val.imports) {
102
+ const deps = dependencyMap.getOrCreate(path.resolve(this._pkgPath, imp.path), new Set<string>());
103
+ deps.add(path.resolve(this._pkgPath, key));
104
+ }
105
+ }
106
+ }
107
+
108
+ return {
109
+ results,
110
+ initialFiles,
111
+ outputFiles: buildResult.outputFiles,
112
+ dependencyMap,
113
+ metafile: buildResult.metafile
114
+ };
115
+ }
116
+ }
package/src/index.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./build-tools/SdCliIndexFileGenerator";
3
3
  export * from "./build-tools/SdCliNgRoutesFileGenerator";
4
4
  export * from "./build-tools/SdLinter";
5
5
  export * from "./build-tools/SdNgBundler";
6
+ export * from "./build-tools/SdNgBundlerContext";
6
7
  export * from "./build-tools/SdTsBundler";
7
8
  export * from "./build-tools/SdTsCompiler";
8
9
  export * from "./builders/SdCliClientBuilder";
@@ -16,11 +16,7 @@ export class SdMemoryLoadResultCache extends MemoryLoadResultCache {
16
16
  for (const watchFile of result.watchFiles) {
17
17
  // Normalize the watch file path to ensure OS consistent paths
18
18
  const watchFilePath = path.resolve(watchFile);
19
- let affected = this.fileDependencies.get(watchFilePath);
20
- if (affected === undefined) {
21
- affected = new Set();
22
- this.fileDependencies.set(watchFilePath, affected);
23
- }
19
+ let affected = this.fileDependencies.getOrCreate(watchFilePath, new Set());
24
20
  affected.add(putPath);
25
21
  }
26
22
  }