@theia/application-manager 1.72.0-next.0 → 1.72.0-next.11
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/lib/application-package-manager.d.ts.map +1 -1
- package/lib/application-package-manager.js +15 -5
- package/lib/application-package-manager.js.map +1 -1
- package/lib/application-process.d.ts +1 -1
- package/lib/application-process.d.ts.map +1 -1
- package/lib/application-process.js.map +1 -1
- package/lib/generator/bundler-generator.d.ts +22 -0
- package/lib/generator/bundler-generator.d.ts.map +1 -0
- package/lib/generator/{webpack-generator.js → bundler-generator.js} +309 -30
- package/lib/generator/bundler-generator.js.map +1 -0
- package/lib/generator/frontend-generator.d.ts +2 -2
- package/lib/generator/frontend-generator.d.ts.map +1 -1
- package/lib/generator/frontend-generator.js +7 -4
- package/lib/generator/frontend-generator.js.map +1 -1
- package/lib/generator/index.d.ts +1 -1
- package/lib/generator/index.js +1 -1
- package/package.json +8 -5
- package/src/application-package-manager.ts +15 -6
- package/src/application-process.ts +1 -1
- package/src/generator/{webpack-generator.ts → bundler-generator.ts} +315 -27
- package/src/generator/frontend-generator.ts +7 -4
- package/src/generator/index.ts +1 -1
- package/lib/generator/webpack-generator.d.ts +0 -12
- package/lib/generator/webpack-generator.d.ts.map +0 -1
- package/lib/generator/webpack-generator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"application-package-manager.d.ts","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,GAAG,QAAQ,OAAO,CAAC,CAAC;AAGhC,OAAO,QAAQ,QAAQ,CAAC;IACpB,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AASD,qBAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG;QACjE,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;QAClC,aAAa,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAC;IAaF,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,yBAAyB;cAM9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,KAAK,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,EAAE,CAAC,YAAY;IAS3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAKjD,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAA;KAAE,CAAC;IAelH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAyB9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;IAc7C;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BhD,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAc1G,OAAO,CAAC,UAAU;IAiBlB,OAAO,KAAK,WAAW,GAQtB;CACJ"}
|
|
@@ -52,12 +52,15 @@ class ApplicationPackageManager {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
async clean() {
|
|
55
|
-
const
|
|
55
|
+
const bundlerGenerator = new generator_1.BundlerGenerator(this.pck);
|
|
56
56
|
await Promise.all([
|
|
57
57
|
this.remove(this.pck.lib()),
|
|
58
58
|
this.remove(this.pck.srcGen()),
|
|
59
|
-
this.remove(
|
|
60
|
-
this.remove(
|
|
59
|
+
this.remove(bundlerGenerator.genConfigPath),
|
|
60
|
+
this.remove(bundlerGenerator.genNodeConfigPath),
|
|
61
|
+
this.remove(bundlerGenerator.genESBuildBrowserPath),
|
|
62
|
+
this.remove(bundlerGenerator.genESBuildNodePath),
|
|
63
|
+
this.remove(bundlerGenerator.genESBuildElectronPath),
|
|
61
64
|
]);
|
|
62
65
|
}
|
|
63
66
|
async prepare() {
|
|
@@ -77,7 +80,7 @@ class ApplicationPackageManager {
|
|
|
77
80
|
throw error;
|
|
78
81
|
}
|
|
79
82
|
await Promise.all([
|
|
80
|
-
new generator_1.
|
|
83
|
+
new generator_1.BundlerGenerator(this.pck, options).generate(),
|
|
81
84
|
new generator_1.BackendGenerator(this.pck, options).generate(),
|
|
82
85
|
new generator_1.FrontendGenerator(this.pck, options).generate(),
|
|
83
86
|
]);
|
|
@@ -87,9 +90,16 @@ class ApplicationPackageManager {
|
|
|
87
90
|
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
|
|
88
91
|
}
|
|
89
92
|
async build(args = [], options = {}) {
|
|
93
|
+
const bundlerGenerator = new generator_1.BundlerGenerator(this.pck);
|
|
90
94
|
await this.generate(options);
|
|
91
95
|
await this.copy();
|
|
92
|
-
|
|
96
|
+
if (await bundlerGenerator.preferESBuild()) {
|
|
97
|
+
const process = this.__process.spawn('node', [bundlerGenerator.esbuildPath, ...args]);
|
|
98
|
+
return this.__process.promisify('esbuild', process);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
return this.__process.run('webpack', args);
|
|
102
|
+
}
|
|
93
103
|
}
|
|
94
104
|
start(args = []) {
|
|
95
105
|
if (this.pck.isElectron()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,6BAA6B;AAC7B,+BAA+B;AAE/B,iCAAiC;AACjC,oEAA2F;AAC3F,2CAAoF;AACpF,+DAA2D;AAS3D,MAAM,UAAW,SAAQ,KAAK;IAC1B,YAAY,GAAG,IAAkC;QAC7C,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACJ;AAED,MAAa,yBAAyB;IAElC,MAAM,CAAC,sBAAsB,CAAI,GAAkB;QAI/C,OAAO,GAAG;aACL,MAAM,CAAC,MAAM,EAAE;YACZ,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;YACtC,OAAO,EAAE,YAAqB;SACjC,CAAC;aACD,MAAM,CAAC,gBAAgB,EAAE;YACtB,WAAW,EAAE,kIAAkI;YAC/I,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;IACX,CAAC;IAQD,YAAY,OAAkC;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,wCAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,wCAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,IAAI,wCAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,MAAc;QACjC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"application-package-manager.js","sourceRoot":"","sources":["../src/application-package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,6 @@ export declare class ApplicationProcess {
|
|
|
14
14
|
run(command: string, args: string[], options?: cp.SpawnOptions): Promise<void>;
|
|
15
15
|
spawnBin(command: string, args: string[], options?: cp.SpawnOptions): cp.ChildProcess;
|
|
16
16
|
protected resolveBin(rootPath: string, command: string): string | undefined;
|
|
17
|
-
|
|
17
|
+
promisify(command: string, p: cp.ChildProcess): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=application-process.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-process.d.ts","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,qBAAa,kBAAkB;IAQvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAP7C,SAAS,CAAC,QAAQ,CAAC,cAAc;;;MAG/B;gBAGqB,GAAG,EAAE,kBAAkB,EACvB,cAAc,EAAE,MAAM;IAG7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAOnF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY;IAIpF,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKhC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAWrF,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3E,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"application-process.d.ts","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,qBAAa,kBAAkB;IAQvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAP7C,SAAS,CAAC,QAAQ,CAAC,cAAc;;;MAG/B;gBAGqB,GAAG,EAAE,kBAAkB,EACvB,cAAc,EAAE,MAAM;IAG7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAOnF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY;IAIpF,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKhC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY;IAWrF,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3E,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AbstractGenerator } from './abstract-generator';
|
|
2
|
+
export declare class BundlerGenerator extends AbstractGenerator {
|
|
3
|
+
generate(): Promise<void>;
|
|
4
|
+
preferESBuild(): Promise<boolean>;
|
|
5
|
+
protected shouldGenerateUserWebpackConfig(): Promise<boolean>;
|
|
6
|
+
protected shouldGenerateUserESBuildConfig(): Promise<boolean>;
|
|
7
|
+
get configPath(): string;
|
|
8
|
+
get genConfigPath(): string;
|
|
9
|
+
get genNodeConfigPath(): string;
|
|
10
|
+
get esbuildPath(): string;
|
|
11
|
+
get genESBuildBrowserPath(): string;
|
|
12
|
+
get genESBuildNodePath(): string;
|
|
13
|
+
get genESBuildElectronPath(): string;
|
|
14
|
+
protected compileWebpackConfig(): string;
|
|
15
|
+
protected compileUserWebpackConfig(): string;
|
|
16
|
+
protected compileNodeWebpackConfig(): string;
|
|
17
|
+
protected compileESBuildBrowserConfig(): string;
|
|
18
|
+
protected compileESBuildNodeConfig(): string;
|
|
19
|
+
protected compileESBuildUserConfig(): string;
|
|
20
|
+
protected compileESBuildElectronConfig(): string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=bundler-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundler-generator.d.ts","sourceRoot":"","sources":["../../src/generator/bundler-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;cAavB,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;cAQnD,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,qBAAqB,IAAI,MAAM,CAElC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,SAAS,CAAC,oBAAoB,IAAI,MAAM;IA4SxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAyB5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAkM5C,SAAS,CAAC,2BAA2B,IAAI,MAAM;IA0G/C,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAuE5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAgD5C,SAAS,CAAC,4BAA4B,IAAI,MAAM;CA8BnD"}
|
|
@@ -15,26 +15,59 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
18
|
+
exports.BundlerGenerator = void 0;
|
|
19
19
|
const paths = require("path");
|
|
20
20
|
const fs = require("fs-extra");
|
|
21
21
|
const abstract_generator_1 = require("./abstract-generator");
|
|
22
|
-
class
|
|
22
|
+
class BundlerGenerator extends abstract_generator_1.AbstractGenerator {
|
|
23
23
|
async generate() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if (await this.preferESBuild()) {
|
|
25
|
+
await this.write(this.genESBuildBrowserPath, this.compileESBuildBrowserConfig());
|
|
26
|
+
if (!this.pck.isBrowserOnly()) {
|
|
27
|
+
await this.write(this.genESBuildNodePath, this.compileESBuildNodeConfig());
|
|
28
|
+
if (this.pck.isElectron()) {
|
|
29
|
+
await this.write(this.genESBuildElectronPath, this.compileESBuildElectronConfig());
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (await this.shouldGenerateUserESBuildConfig()) {
|
|
33
|
+
await this.write(this.esbuildPath, this.compileESBuildUserConfig());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await this.write(this.genConfigPath, this.compileWebpackConfig());
|
|
38
|
+
if (!this.pck.isBrowserOnly()) {
|
|
39
|
+
await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
|
|
40
|
+
}
|
|
41
|
+
if (await this.shouldGenerateUserWebpackConfig()) {
|
|
42
|
+
await this.write(this.configPath, this.compileUserWebpackConfig());
|
|
43
|
+
}
|
|
27
44
|
}
|
|
28
|
-
|
|
29
|
-
|
|
45
|
+
}
|
|
46
|
+
async preferESBuild() {
|
|
47
|
+
// If an esbuild file already exists, prefer esbuild
|
|
48
|
+
if (await fs.pathExists(this.esbuildPath)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
// If a webpack file already exists, prefer webpack
|
|
52
|
+
if (await fs.pathExists(this.configPath)) {
|
|
53
|
+
return false;
|
|
30
54
|
}
|
|
55
|
+
// Otherwise, prefer ESBuild (for performance)
|
|
56
|
+
return true;
|
|
31
57
|
}
|
|
32
58
|
async shouldGenerateUserWebpackConfig() {
|
|
33
59
|
if (!(await fs.pathExists(this.configPath))) {
|
|
34
60
|
return true;
|
|
35
61
|
}
|
|
36
62
|
const content = await fs.readFile(this.configPath, 'utf8');
|
|
37
|
-
return content.
|
|
63
|
+
return !content.includes('gen-webpack');
|
|
64
|
+
}
|
|
65
|
+
async shouldGenerateUserESBuildConfig() {
|
|
66
|
+
if (!(await fs.pathExists(this.esbuildPath))) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
const content = await fs.readFile(this.esbuildPath, 'utf8');
|
|
70
|
+
return !content.includes('gen-esbuild');
|
|
38
71
|
}
|
|
39
72
|
get configPath() {
|
|
40
73
|
return this.pck.path('webpack.config.js');
|
|
@@ -45,6 +78,18 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
45
78
|
get genNodeConfigPath() {
|
|
46
79
|
return this.pck.path('gen-webpack.node.config.js');
|
|
47
80
|
}
|
|
81
|
+
get esbuildPath() {
|
|
82
|
+
return this.pck.path('esbuild.mjs');
|
|
83
|
+
}
|
|
84
|
+
get genESBuildBrowserPath() {
|
|
85
|
+
return this.pck.path('gen-esbuild.browser.mjs');
|
|
86
|
+
}
|
|
87
|
+
get genESBuildNodePath() {
|
|
88
|
+
return this.pck.path('gen-esbuild.node.mjs');
|
|
89
|
+
}
|
|
90
|
+
get genESBuildElectronPath() {
|
|
91
|
+
return this.pck.path('gen-esbuild.electron.mjs');
|
|
92
|
+
}
|
|
48
93
|
compileWebpackConfig() {
|
|
49
94
|
return `/**
|
|
50
95
|
* Don't touch this file. It will be regenerated by theia build.
|
|
@@ -58,7 +103,7 @@ const resolvePackagePath = require('resolve-package-path');
|
|
|
58
103
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
59
104
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
60
105
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
61
|
-
const { MonacoWebpackPlugin } = require('@theia/
|
|
106
|
+
const { MonacoWebpackPlugin } = require('@theia/bundle-plugin');
|
|
62
107
|
|
|
63
108
|
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
64
109
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
@@ -115,6 +160,7 @@ module.exports = [{
|
|
|
115
160
|
devtool: 'source-map',
|
|
116
161
|
entry: {
|
|
117
162
|
bundle: path.resolve(__dirname, 'src-gen/frontend/index.js'),
|
|
163
|
+
${this.ifPackage('@theia/plugin-ext', "'plugin-worker': '@theia/plugin-ext/lib/hosted/browser/worker/worker-main.js',")}
|
|
118
164
|
},
|
|
119
165
|
output: {
|
|
120
166
|
filename: '[name].js',
|
|
@@ -128,25 +174,8 @@ module.exports = [{
|
|
|
128
174
|
rules: [
|
|
129
175
|
{
|
|
130
176
|
test: /\\.css$/,
|
|
131
|
-
exclude: /materialcolors\\.css$|\\.useable\\.css$/,
|
|
132
177
|
use: ['style-loader', 'css-loader']
|
|
133
178
|
},
|
|
134
|
-
{
|
|
135
|
-
test: /materialcolors\\.css$|\\.useable\\.css$/,
|
|
136
|
-
use: [
|
|
137
|
-
{
|
|
138
|
-
loader: 'style-loader',
|
|
139
|
-
options: {
|
|
140
|
-
esModule: false,
|
|
141
|
-
injectType: 'lazySingletonStyleTag',
|
|
142
|
-
attributes: {
|
|
143
|
-
id: 'theia-theme'
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
'css-loader'
|
|
148
|
-
]
|
|
149
|
-
},
|
|
150
179
|
{
|
|
151
180
|
test: /\\.(ttf|eot|svg)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,
|
|
152
181
|
type: 'asset',
|
|
@@ -394,8 +423,7 @@ const path = require('path');
|
|
|
394
423
|
const yargs = require('yargs');
|
|
395
424
|
const webpack = require('webpack');
|
|
396
425
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
397
|
-
const NativeWebpackPlugin = require('@theia/
|
|
398
|
-
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
426
|
+
const { NativeWebpackPlugin, MonacoWebpackPlugin } = require('@theia/bundle-plugin');
|
|
399
427
|
|
|
400
428
|
const { mode } = yargs.option('mode', {
|
|
401
429
|
description: "Mode to use",
|
|
@@ -576,8 +604,259 @@ module.exports = {
|
|
|
576
604
|
nativePlugin,
|
|
577
605
|
ignoredResources
|
|
578
606
|
};
|
|
607
|
+
`;
|
|
608
|
+
}
|
|
609
|
+
compileESBuildBrowserConfig() {
|
|
610
|
+
return `/**
|
|
611
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
612
|
+
* To customize the build process, change ./esbuild.mjs
|
|
613
|
+
*/
|
|
614
|
+
import { nodeModulesPolyfillPlugin } from 'esbuild-plugins-node-modules-polyfill';
|
|
615
|
+
import { copy } from 'esbuild-plugin-copy';
|
|
616
|
+
import { monacoNlsPlugin, problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
617
|
+
import yargs from 'yargs';
|
|
618
|
+
import resolvePackagePath from 'resolve-package-path';
|
|
619
|
+
import path from 'node:path';
|
|
620
|
+
import { fileURLToPath } from 'node:url';
|
|
621
|
+
|
|
622
|
+
export const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
623
|
+
|
|
624
|
+
export function join(...parts) {
|
|
625
|
+
return path.join(...parts).replace(/\\\\/g, '/');
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
const { mode, watch } = yargs.option('mode', {
|
|
629
|
+
description: "Mode to use",
|
|
630
|
+
choices: ["development", "production"],
|
|
631
|
+
default: "production"
|
|
632
|
+
}).option('watch', {
|
|
633
|
+
description: 'Controls whether to enable watch mode',
|
|
634
|
+
type: 'boolean',
|
|
635
|
+
default: false
|
|
636
|
+
}).argv;
|
|
637
|
+
|
|
638
|
+
const production = mode === 'production';
|
|
639
|
+
const sourcemap = production ? false : 'linked';
|
|
640
|
+
const minify = production;
|
|
641
|
+
|
|
642
|
+
export { mode, watch, sourcemap, minify };
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* @type {Record<string, import('esbuild').Loader>}
|
|
646
|
+
*/
|
|
647
|
+
export const loader = {
|
|
648
|
+
'.css': 'css',
|
|
649
|
+
'.ttf': 'dataurl',
|
|
650
|
+
'.eot': 'dataurl',
|
|
651
|
+
'.svg': 'dataurl',
|
|
652
|
+
'.woff': 'dataurl',
|
|
653
|
+
'.woff2': 'dataurl',
|
|
654
|
+
'.jpg': 'dataurl',
|
|
655
|
+
'.png': 'dataurl',
|
|
656
|
+
'.gif': 'dataurl',
|
|
657
|
+
'.wasm': 'dataurl',
|
|
658
|
+
'.plist': 'dataurl',
|
|
659
|
+
'.node': 'file'
|
|
660
|
+
};
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* @type {import('esbuild').BuildOptions}
|
|
664
|
+
*/
|
|
665
|
+
export const browserOptions = {
|
|
666
|
+
entryPoints: {
|
|
667
|
+
'bundle': './src-gen/frontend/index.js',
|
|
668
|
+
'secondary-window': './src-gen/frontend/secondary-index.js',
|
|
669
|
+
${this.ifMonaco(() => "'editor.worker': '@theia/monaco-editor-core/esm/vs/editor/common/services/editorWebWorkerMain.js',")}
|
|
670
|
+
${this.ifPackage('@theia/plugin-ext', "'plugin-worker': '@theia/plugin-ext/lib/hosted/browser/worker/worker-main.js',")}
|
|
671
|
+
},
|
|
672
|
+
assetNames: '[name]',
|
|
673
|
+
bundle: true,
|
|
674
|
+
outdir: 'lib/frontend',
|
|
675
|
+
platform: 'browser',
|
|
676
|
+
// Support UMD libraries
|
|
677
|
+
// but ensure that we also prioritize browser exports where possible
|
|
678
|
+
mainFields: ['browser', 'module', 'main'],
|
|
679
|
+
loader,
|
|
680
|
+
minify,
|
|
681
|
+
sourcemap,
|
|
682
|
+
plugins: [
|
|
683
|
+
problemMatcherPlugin(watch, 'browser'),
|
|
684
|
+
${this.ifMonaco(() => 'monacoNlsPlugin(),')}
|
|
685
|
+
nodeModulesPolyfillPlugin({
|
|
686
|
+
globals: {
|
|
687
|
+
Buffer: true,
|
|
688
|
+
process: false
|
|
689
|
+
}
|
|
690
|
+
}),
|
|
691
|
+
copy({
|
|
692
|
+
assets: [
|
|
693
|
+
{
|
|
694
|
+
// copy secondary window html file to lib folder
|
|
695
|
+
from: join(__dirname, 'src-gen/frontend/secondary-window.html'),
|
|
696
|
+
to: join(__dirname, 'lib', 'frontend')
|
|
697
|
+
}${this.ifPackage('@theia/plugin-ext', `,
|
|
698
|
+
{
|
|
699
|
+
// copy webview files to lib folder
|
|
700
|
+
from: join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre', '*'),
|
|
701
|
+
to: join(__dirname, 'lib', 'webview', 'pre')
|
|
702
|
+
}`)}${this.ifPackage('@theia/plugin-ext-vscode', `,
|
|
703
|
+
{
|
|
704
|
+
// copy frontend plugin host files
|
|
705
|
+
from: join(resolvePackagePath('@theia/plugin-ext-vscode', __dirname), '..', 'lib', 'node', 'context', 'plugin-vscode-init-fe.js'),
|
|
706
|
+
to: join(__dirname, 'lib', 'frontend', 'context')
|
|
707
|
+
}`)}
|
|
708
|
+
]
|
|
709
|
+
})
|
|
710
|
+
]
|
|
711
|
+
};
|
|
712
|
+
`;
|
|
713
|
+
}
|
|
714
|
+
compileESBuildNodeConfig() {
|
|
715
|
+
return `/**
|
|
716
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
717
|
+
* To customize the build process, change ./esbuild.mjs
|
|
718
|
+
*/
|
|
719
|
+
import { nativeDependenciesPlugin, problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
720
|
+
import { watch, loader, minify, sourcemap, join, __dirname } from './gen-esbuild.browser.mjs';
|
|
721
|
+
import { copy } from 'esbuild-plugin-copy';
|
|
722
|
+
import resolvePackagePath from 'resolve-package-path';
|
|
723
|
+
|
|
724
|
+
/**
|
|
725
|
+
* @type {Record<string, string>}
|
|
726
|
+
*/
|
|
727
|
+
export const nativeBindings = {
|
|
728
|
+
drivelist: 'drivelist/build/Release/drivelist.node'
|
|
729
|
+
};
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* @type {import('esbuild').BuildOptions}
|
|
733
|
+
*/
|
|
734
|
+
export const nodeOptions = {
|
|
735
|
+
entryPoints: {
|
|
736
|
+
'main': './src-gen/backend/main',
|
|
737
|
+
'ipc-bootstrap': '@theia/core/lib/node/messaging/ipc-bootstrap',
|
|
738
|
+
${this.ifElectron("'electron-main': './src-gen/backend/electron-main',")}
|
|
739
|
+
${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
|
|
740
|
+
'plugin-host': '@theia/plugin-ext/lib/hosted/node/plugin-host',`)}
|
|
741
|
+
${this.ifPackage('@theia/plugin-ext-headless', () => `// Theia Headless Plugin support:
|
|
742
|
+
'plugin-host-headless': '@theia/plugin-ext-headless/lib/hosted/node/plugin-host-headless',`)}
|
|
743
|
+
${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread workers can be executed:
|
|
744
|
+
'worker/conoutSocketWorker': 'node-pty/lib/worker/conoutSocketWorker',
|
|
745
|
+
'conpty_console_list_agent': 'node-pty/lib/conpty_console_list_agent',`)}
|
|
746
|
+
${this.ifPackage('@theia/dev-container', () => `// VS Code Dev-Container communication:
|
|
747
|
+
'dev-container-server': '@theia/dev-container/lib/dev-container-server/dev-container-server',`)}
|
|
748
|
+
${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
|
|
749
|
+
${this.ifPackage('@theia/filesystem', "'parcel-watcher': '@theia/filesystem/lib/node/parcel-watcher',")}
|
|
750
|
+
${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
|
|
751
|
+
${this.ifPackage('@theia/api-provider-sample', "'gotd-api-init': '@theia/api-provider-sample/lib/plugin/gotd-api-init',")}
|
|
752
|
+
${this.ifPackage('@theia/git', "'git-locator-host': '@theia/git/lib/node/git-locator/git-locator-host',")}
|
|
753
|
+
},
|
|
754
|
+
assetNames: 'native/[name]',
|
|
755
|
+
bundle: true,
|
|
756
|
+
outdir: 'lib/backend',
|
|
757
|
+
platform: 'node',
|
|
758
|
+
mainFields: ['node', 'module', 'main'],
|
|
759
|
+
external: ['electron'],
|
|
760
|
+
loader,
|
|
761
|
+
minify,
|
|
762
|
+
sourcemap,
|
|
763
|
+
plugins: [
|
|
764
|
+
problemMatcherPlugin(watch, 'node'),
|
|
765
|
+
nativeDependenciesPlugin({
|
|
766
|
+
pty: ${this.ifPackage('@theia/process', 'true', 'false')},
|
|
767
|
+
ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
|
|
768
|
+
trash: ${this.ifPackage('@theia/filesystem', 'true', 'false')},
|
|
769
|
+
nativeBindings
|
|
770
|
+
}),
|
|
771
|
+
copy({
|
|
772
|
+
assets: [${this.ifPackage('@theia/terminal', `
|
|
773
|
+
{
|
|
774
|
+
// copy shell integration scripts
|
|
775
|
+
from: join(resolvePackagePath('@theia/terminal', __dirname), '..', 'src', 'node', 'shell-integrations', '**', '*'),
|
|
776
|
+
to: join(__dirname, 'lib', 'backend', 'shell-integrations')
|
|
777
|
+
},`)}
|
|
778
|
+
]
|
|
779
|
+
})
|
|
780
|
+
]
|
|
781
|
+
};
|
|
782
|
+
`;
|
|
783
|
+
}
|
|
784
|
+
compileESBuildUserConfig() {
|
|
785
|
+
return `/**
|
|
786
|
+
* This file can be edited to adjust the ESBuild build process.
|
|
787
|
+
* To reset, delete this file and rerun theia build again.
|
|
788
|
+
*/
|
|
789
|
+
import { browserOptions, watch } from './gen-esbuild.browser.mjs';
|
|
790
|
+
${this.ifBrowserOnly(`import esbuild from 'esbuild';
|
|
791
|
+
|
|
792
|
+
const browserContext = await esbuild.context(browserOptions);
|
|
793
|
+
|
|
794
|
+
if (watch) {
|
|
795
|
+
await browserContext.watch();
|
|
796
|
+
} else {
|
|
797
|
+
try {
|
|
798
|
+
await browserContext.rebuild();
|
|
799
|
+
await browserContext.dispose();
|
|
800
|
+
} catch {
|
|
801
|
+
process.exit(1);
|
|
802
|
+
}
|
|
803
|
+
}`, `import { nodeOptions } from './gen-esbuild.node.mjs';
|
|
804
|
+
${this.ifElectron("import { electronOptions } from './gen-esbuild.electron.mjs';")}
|
|
805
|
+
import esbuild from 'esbuild';
|
|
806
|
+
|
|
807
|
+
const browserContext = await esbuild.context(browserOptions);
|
|
808
|
+
const nodeContext = await esbuild.context(nodeOptions);
|
|
809
|
+
${this.ifElectron('const electronContext = await esbuild.context(electronOptions);')}
|
|
810
|
+
|
|
811
|
+
if (watch) {
|
|
812
|
+
await Promise.all([
|
|
813
|
+
browserContext.watch(),
|
|
814
|
+
nodeContext.watch(),${this.ifElectron(`
|
|
815
|
+
electronContext.watch(),`)}
|
|
816
|
+
]);
|
|
817
|
+
} else {
|
|
818
|
+
try {
|
|
819
|
+
await browserContext.rebuild();
|
|
820
|
+
await browserContext.dispose();
|
|
821
|
+
await nodeContext.rebuild();
|
|
822
|
+
await nodeContext.dispose();${this.ifElectron(`
|
|
823
|
+
await electronContext.rebuild();
|
|
824
|
+
await electronContext.dispose();`)}
|
|
825
|
+
} catch {
|
|
826
|
+
process.exit(1);
|
|
827
|
+
}
|
|
828
|
+
}`)}
|
|
829
|
+
`;
|
|
830
|
+
}
|
|
831
|
+
compileESBuildElectronConfig() {
|
|
832
|
+
return `/**
|
|
833
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
834
|
+
* To customize the build process, change ./esbuild.mjs
|
|
835
|
+
*/
|
|
836
|
+
import { problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
837
|
+
import { watch, loader, minify, sourcemap } from './gen-esbuild.browser.mjs';
|
|
838
|
+
|
|
839
|
+
/**
|
|
840
|
+
* @type {import('esbuild').BuildOptions}
|
|
841
|
+
*/
|
|
842
|
+
export const electronOptions = {
|
|
843
|
+
entryPoints: {
|
|
844
|
+
'preload': './src-gen/frontend/preload'
|
|
845
|
+
},
|
|
846
|
+
bundle: true,
|
|
847
|
+
outdir: 'lib/frontend',
|
|
848
|
+
platform: 'node',
|
|
849
|
+
mainFields: ['node', 'module', 'main'],
|
|
850
|
+
external: ['electron'],
|
|
851
|
+
loader,
|
|
852
|
+
minify,
|
|
853
|
+
sourcemap,
|
|
854
|
+
plugins: [
|
|
855
|
+
problemMatcherPlugin(watch, 'electron')
|
|
856
|
+
]
|
|
857
|
+
};
|
|
579
858
|
`;
|
|
580
859
|
}
|
|
581
860
|
}
|
|
582
|
-
exports.
|
|
583
|
-
//# sourceMappingURL=
|
|
861
|
+
exports.BundlerGenerator = BundlerGenerator;
|
|
862
|
+
//# sourceMappingURL=bundler-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundler-generator.js","sourceRoot":"","sources":["../../src/generator/bundler-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { AbstractGenerator, GeneratorOptions } from './abstract-generator';
|
|
|
2
2
|
export declare class FrontendGenerator extends AbstractGenerator {
|
|
3
3
|
generate(options?: GeneratorOptions): Promise<void>;
|
|
4
4
|
protected compileIndexPreload(frontendModules: Map<string, string>): string;
|
|
5
|
-
protected compileIndexHtml(frontendModules: Map<string, string>): string
|
|
6
|
-
protected compileIndexHead(frontendModules: Map<string, string>): string
|
|
5
|
+
protected compileIndexHtml(frontendModules: Map<string, string>): Promise<string>;
|
|
6
|
+
protected compileIndexHead(frontendModules: Map<string, string>): Promise<string>;
|
|
7
7
|
protected compileIndexJs(frontendModules: Map<string, string>, frontendPreloadModules: Map<string, string>): string;
|
|
8
8
|
protected importOrRequire(): string;
|
|
9
9
|
/** HTML for secondary windows that contain an extracted widget. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;cAc3D,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAevE,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvF,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAgGnH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;IAoC9C,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAgBtF,gBAAgB,IAAI,MAAM;CAM7B"}
|
|
@@ -20,9 +20,10 @@ exports.FrontendGenerator = void 0;
|
|
|
20
20
|
const os_1 = require("os");
|
|
21
21
|
const abstract_generator_1 = require("./abstract-generator");
|
|
22
22
|
const fs_1 = require("fs");
|
|
23
|
+
const bundler_generator_1 = require("./bundler-generator");
|
|
23
24
|
class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
24
25
|
async generate(options) {
|
|
25
|
-
await this.write(this.pck.frontend('index.html'), this.compileIndexHtml(this.pck.targetFrontendModules));
|
|
26
|
+
await this.write(this.pck.frontend('index.html'), await this.compileIndexHtml(this.pck.targetFrontendModules));
|
|
26
27
|
await this.write(this.pck.frontend('index.js'), this.compileIndexJs(this.pck.targetFrontendModules, this.pck.targetFrontendPreloadModules));
|
|
27
28
|
await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
|
|
28
29
|
await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
|
|
@@ -41,11 +42,11 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
41
42
|
}
|
|
42
43
|
return template;
|
|
43
44
|
}
|
|
44
|
-
compileIndexHtml(frontendModules) {
|
|
45
|
+
async compileIndexHtml(frontendModules) {
|
|
45
46
|
return `<!DOCTYPE html>
|
|
46
47
|
<html lang="en">
|
|
47
48
|
|
|
48
|
-
<head>${this.compileIndexHead(frontendModules)}
|
|
49
|
+
<head>${await this.compileIndexHead(frontendModules)}
|
|
49
50
|
</head>
|
|
50
51
|
|
|
51
52
|
<body>
|
|
@@ -55,11 +56,13 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
55
56
|
|
|
56
57
|
</html>`;
|
|
57
58
|
}
|
|
58
|
-
compileIndexHead(frontendModules) {
|
|
59
|
+
async compileIndexHead(frontendModules) {
|
|
60
|
+
const preferEsbuild = await new bundler_generator_1.BundlerGenerator(this.pck, this.options).preferESBuild();
|
|
59
61
|
return `
|
|
60
62
|
<meta charset="UTF-8">
|
|
61
63
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
62
64
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
65
|
+
${preferEsbuild ? '<link rel="stylesheet" href="./bundle.css">' : ''}
|
|
63
66
|
<title>${this.pck.props.frontend.config.applicationName}</title>`;
|
|
64
67
|
}
|
|
65
68
|
compileIndexJs(frontendModules, frontendPreloadModules) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8CAA8C;AAE9C,2BAAyB;AACzB,6DAA2E;AAC3E,2BAA8C;
|
|
1
|
+
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
|
package/lib/generator/index.d.ts
CHANGED
package/lib/generator/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const tslib_1 = require("tslib");
|
|
19
|
-
tslib_1.__exportStar(require("./
|
|
19
|
+
tslib_1.__exportStar(require("./bundler-generator"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./frontend-generator"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./backend-generator"), exports);
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/application-manager",
|
|
3
|
-
"version": "1.72.0-next.
|
|
3
|
+
"version": "1.72.0-next.11+b1c4bde4705",
|
|
4
4
|
"description": "Theia application manager API.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"@babel/plugin-transform-runtime": "^7.29.0",
|
|
35
35
|
"@babel/preset-env": "^7.29.2",
|
|
36
36
|
"@electron/rebuild": "^4.0.3",
|
|
37
|
-
"@theia/application-package": "1.72.0-next.
|
|
38
|
-
"@theia/
|
|
39
|
-
"@theia/
|
|
37
|
+
"@theia/application-package": "1.72.0-next.11+b1c4bde4705",
|
|
38
|
+
"@theia/bundle-plugin": "1.72.0-next.11+b1c4bde4705",
|
|
39
|
+
"@theia/ffmpeg": "1.72.0-next.11+b1c4bde4705",
|
|
40
40
|
"@types/fs-extra": "^4.0.15",
|
|
41
41
|
"@types/semver": "^7.7.1",
|
|
42
42
|
"babel-loader": "^8.4.1",
|
|
@@ -44,6 +44,9 @@
|
|
|
44
44
|
"compression-webpack-plugin": "^9.2.0",
|
|
45
45
|
"copy-webpack-plugin": "^8.1.1",
|
|
46
46
|
"css-loader": "^6.11.0",
|
|
47
|
+
"esbuild": "^0.24.0",
|
|
48
|
+
"esbuild-plugin-copy": "^2.1.1",
|
|
49
|
+
"esbuild-plugins-node-modules-polyfill": "^1.6.7",
|
|
47
50
|
"fs-extra": "^4.0.2",
|
|
48
51
|
"http-server": "^14.1.1",
|
|
49
52
|
"ignore-loader": "^0.1.2",
|
|
@@ -78,5 +81,5 @@
|
|
|
78
81
|
"nyc": {
|
|
79
82
|
"extends": "../../configs/nyc.json"
|
|
80
83
|
},
|
|
81
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "b1c4bde470503b1cc20454841cf2c84ed7deb63f"
|
|
82
85
|
}
|
|
@@ -19,7 +19,7 @@ import * as fs from 'fs-extra';
|
|
|
19
19
|
import * as cp from 'child_process';
|
|
20
20
|
import * as semver from 'semver';
|
|
21
21
|
import { ApplicationPackage, ApplicationPackageOptions } from '@theia/application-package';
|
|
22
|
-
import {
|
|
22
|
+
import { BundlerGenerator, FrontendGenerator, BackendGenerator } from './generator';
|
|
23
23
|
import { ApplicationProcess } from './application-process';
|
|
24
24
|
import { GeneratorOptions } from './generator/abstract-generator';
|
|
25
25
|
import yargs = require('yargs');
|
|
@@ -73,12 +73,15 @@ export class ApplicationPackageManager {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
async clean(): Promise<void> {
|
|
76
|
-
const
|
|
76
|
+
const bundlerGenerator = new BundlerGenerator(this.pck);
|
|
77
77
|
await Promise.all([
|
|
78
78
|
this.remove(this.pck.lib()),
|
|
79
79
|
this.remove(this.pck.srcGen()),
|
|
80
|
-
this.remove(
|
|
81
|
-
this.remove(
|
|
80
|
+
this.remove(bundlerGenerator.genConfigPath),
|
|
81
|
+
this.remove(bundlerGenerator.genNodeConfigPath),
|
|
82
|
+
this.remove(bundlerGenerator.genESBuildBrowserPath),
|
|
83
|
+
this.remove(bundlerGenerator.genESBuildNodePath),
|
|
84
|
+
this.remove(bundlerGenerator.genESBuildElectronPath),
|
|
82
85
|
]);
|
|
83
86
|
}
|
|
84
87
|
|
|
@@ -99,7 +102,7 @@ export class ApplicationPackageManager {
|
|
|
99
102
|
throw error;
|
|
100
103
|
}
|
|
101
104
|
await Promise.all([
|
|
102
|
-
new
|
|
105
|
+
new BundlerGenerator(this.pck, options).generate(),
|
|
103
106
|
new BackendGenerator(this.pck, options).generate(),
|
|
104
107
|
new FrontendGenerator(this.pck, options).generate(),
|
|
105
108
|
]);
|
|
@@ -111,9 +114,15 @@ export class ApplicationPackageManager {
|
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
async build(args: string[] = [], options: GeneratorOptions = {}): Promise<void> {
|
|
117
|
+
const bundlerGenerator = new BundlerGenerator(this.pck);
|
|
114
118
|
await this.generate(options);
|
|
115
119
|
await this.copy();
|
|
116
|
-
|
|
120
|
+
if (await bundlerGenerator.preferESBuild()) {
|
|
121
|
+
const process = this.__process.spawn('node', [bundlerGenerator.esbuildPath, ...args]);
|
|
122
|
+
return this.__process.promisify('esbuild', process);
|
|
123
|
+
} else {
|
|
124
|
+
return this.__process.run('webpack', args);
|
|
125
|
+
}
|
|
117
126
|
}
|
|
118
127
|
|
|
119
128
|
start(args: string[] = []): cp.ChildProcess {
|
|
@@ -78,7 +78,7 @@ export class ApplicationProcess {
|
|
|
78
78
|
return this.resolveBin(parentDir, command);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
promisify(command: string, p: cp.ChildProcess): Promise<void> {
|
|
82
82
|
return new Promise((resolve, reject) => {
|
|
83
83
|
p.stdout!.on('data', data => this.pck.log(data.toString()));
|
|
84
84
|
p.stderr!.on('data', data => this.pck.error(data.toString()));
|
|
@@ -18,16 +18,42 @@ import * as paths from 'path';
|
|
|
18
18
|
import * as fs from 'fs-extra';
|
|
19
19
|
import { AbstractGenerator } from './abstract-generator';
|
|
20
20
|
|
|
21
|
-
export class
|
|
21
|
+
export class BundlerGenerator extends AbstractGenerator {
|
|
22
22
|
|
|
23
23
|
async generate(): Promise<void> {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if (await this.preferESBuild()) {
|
|
25
|
+
await this.write(this.genESBuildBrowserPath, this.compileESBuildBrowserConfig());
|
|
26
|
+
if (!this.pck.isBrowserOnly()) {
|
|
27
|
+
await this.write(this.genESBuildNodePath, this.compileESBuildNodeConfig());
|
|
28
|
+
if (this.pck.isElectron()) {
|
|
29
|
+
await this.write(this.genESBuildElectronPath, this.compileESBuildElectronConfig());
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (await this.shouldGenerateUserESBuildConfig()) {
|
|
33
|
+
await this.write(this.esbuildPath, this.compileESBuildUserConfig());
|
|
34
|
+
}
|
|
35
|
+
} else {
|
|
36
|
+
await this.write(this.genConfigPath, this.compileWebpackConfig());
|
|
37
|
+
if (!this.pck.isBrowserOnly()) {
|
|
38
|
+
await this.write(this.genNodeConfigPath, this.compileNodeWebpackConfig());
|
|
39
|
+
}
|
|
40
|
+
if (await this.shouldGenerateUserWebpackConfig()) {
|
|
41
|
+
await this.write(this.configPath, this.compileUserWebpackConfig());
|
|
42
|
+
}
|
|
27
43
|
}
|
|
28
|
-
|
|
29
|
-
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async preferESBuild(): Promise<boolean> {
|
|
47
|
+
// If an esbuild file already exists, prefer esbuild
|
|
48
|
+
if (await fs.pathExists(this.esbuildPath)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
// If a webpack file already exists, prefer webpack
|
|
52
|
+
if (await fs.pathExists(this.configPath)) {
|
|
53
|
+
return false;
|
|
30
54
|
}
|
|
55
|
+
// Otherwise, prefer ESBuild (for performance)
|
|
56
|
+
return true;
|
|
31
57
|
}
|
|
32
58
|
|
|
33
59
|
protected async shouldGenerateUserWebpackConfig(): Promise<boolean> {
|
|
@@ -35,7 +61,15 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
35
61
|
return true;
|
|
36
62
|
}
|
|
37
63
|
const content = await fs.readFile(this.configPath, 'utf8');
|
|
38
|
-
return content.
|
|
64
|
+
return !content.includes('gen-webpack');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
protected async shouldGenerateUserESBuildConfig(): Promise<boolean> {
|
|
68
|
+
if (!(await fs.pathExists(this.esbuildPath))) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
const content = await fs.readFile(this.esbuildPath, 'utf8');
|
|
72
|
+
return !content.includes('gen-esbuild');
|
|
39
73
|
}
|
|
40
74
|
|
|
41
75
|
get configPath(): string {
|
|
@@ -50,6 +84,22 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
50
84
|
return this.pck.path('gen-webpack.node.config.js');
|
|
51
85
|
}
|
|
52
86
|
|
|
87
|
+
get esbuildPath(): string {
|
|
88
|
+
return this.pck.path('esbuild.mjs');
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get genESBuildBrowserPath(): string {
|
|
92
|
+
return this.pck.path('gen-esbuild.browser.mjs');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
get genESBuildNodePath(): string {
|
|
96
|
+
return this.pck.path('gen-esbuild.node.mjs');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
get genESBuildElectronPath(): string {
|
|
100
|
+
return this.pck.path('gen-esbuild.electron.mjs');
|
|
101
|
+
}
|
|
102
|
+
|
|
53
103
|
protected compileWebpackConfig(): string {
|
|
54
104
|
return `/**
|
|
55
105
|
* Don't touch this file. It will be regenerated by theia build.
|
|
@@ -63,7 +113,7 @@ const resolvePackagePath = require('resolve-package-path');
|
|
|
63
113
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
64
114
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
65
115
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
66
|
-
const { MonacoWebpackPlugin } = require('@theia/
|
|
116
|
+
const { MonacoWebpackPlugin } = require('@theia/bundle-plugin');
|
|
67
117
|
|
|
68
118
|
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
69
119
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
@@ -120,6 +170,7 @@ module.exports = [{
|
|
|
120
170
|
devtool: 'source-map',
|
|
121
171
|
entry: {
|
|
122
172
|
bundle: path.resolve(__dirname, 'src-gen/frontend/index.js'),
|
|
173
|
+
${this.ifPackage('@theia/plugin-ext', "'plugin-worker': '@theia/plugin-ext/lib/hosted/browser/worker/worker-main.js',")}
|
|
123
174
|
},
|
|
124
175
|
output: {
|
|
125
176
|
filename: '[name].js',
|
|
@@ -133,25 +184,8 @@ module.exports = [{
|
|
|
133
184
|
rules: [
|
|
134
185
|
{
|
|
135
186
|
test: /\\.css$/,
|
|
136
|
-
exclude: /materialcolors\\.css$|\\.useable\\.css$/,
|
|
137
187
|
use: ['style-loader', 'css-loader']
|
|
138
188
|
},
|
|
139
|
-
{
|
|
140
|
-
test: /materialcolors\\.css$|\\.useable\\.css$/,
|
|
141
|
-
use: [
|
|
142
|
-
{
|
|
143
|
-
loader: 'style-loader',
|
|
144
|
-
options: {
|
|
145
|
-
esModule: false,
|
|
146
|
-
injectType: 'lazySingletonStyleTag',
|
|
147
|
-
attributes: {
|
|
148
|
-
id: 'theia-theme'
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
'css-loader'
|
|
153
|
-
]
|
|
154
|
-
},
|
|
155
189
|
{
|
|
156
190
|
test: /\\.(ttf|eot|svg)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,
|
|
157
191
|
type: 'asset',
|
|
@@ -401,8 +435,7 @@ const path = require('path');
|
|
|
401
435
|
const yargs = require('yargs');
|
|
402
436
|
const webpack = require('webpack');
|
|
403
437
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
404
|
-
const NativeWebpackPlugin = require('@theia/
|
|
405
|
-
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
438
|
+
const { NativeWebpackPlugin, MonacoWebpackPlugin } = require('@theia/bundle-plugin');
|
|
406
439
|
|
|
407
440
|
const { mode } = yargs.option('mode', {
|
|
408
441
|
description: "Mode to use",
|
|
@@ -583,6 +616,261 @@ module.exports = {
|
|
|
583
616
|
nativePlugin,
|
|
584
617
|
ignoredResources
|
|
585
618
|
};
|
|
619
|
+
`;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
protected compileESBuildBrowserConfig(): string {
|
|
623
|
+
return `/**
|
|
624
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
625
|
+
* To customize the build process, change ./esbuild.mjs
|
|
626
|
+
*/
|
|
627
|
+
import { nodeModulesPolyfillPlugin } from 'esbuild-plugins-node-modules-polyfill';
|
|
628
|
+
import { copy } from 'esbuild-plugin-copy';
|
|
629
|
+
import { monacoNlsPlugin, problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
630
|
+
import yargs from 'yargs';
|
|
631
|
+
import resolvePackagePath from 'resolve-package-path';
|
|
632
|
+
import path from 'node:path';
|
|
633
|
+
import { fileURLToPath } from 'node:url';
|
|
634
|
+
|
|
635
|
+
export const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
636
|
+
|
|
637
|
+
export function join(...parts) {
|
|
638
|
+
return path.join(...parts).replace(/\\\\/g, '/');
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
const { mode, watch } = yargs.option('mode', {
|
|
642
|
+
description: "Mode to use",
|
|
643
|
+
choices: ["development", "production"],
|
|
644
|
+
default: "production"
|
|
645
|
+
}).option('watch', {
|
|
646
|
+
description: 'Controls whether to enable watch mode',
|
|
647
|
+
type: 'boolean',
|
|
648
|
+
default: false
|
|
649
|
+
}).argv;
|
|
650
|
+
|
|
651
|
+
const production = mode === 'production';
|
|
652
|
+
const sourcemap = production ? false : 'linked';
|
|
653
|
+
const minify = production;
|
|
654
|
+
|
|
655
|
+
export { mode, watch, sourcemap, minify };
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* @type {Record<string, import('esbuild').Loader>}
|
|
659
|
+
*/
|
|
660
|
+
export const loader = {
|
|
661
|
+
'.css': 'css',
|
|
662
|
+
'.ttf': 'dataurl',
|
|
663
|
+
'.eot': 'dataurl',
|
|
664
|
+
'.svg': 'dataurl',
|
|
665
|
+
'.woff': 'dataurl',
|
|
666
|
+
'.woff2': 'dataurl',
|
|
667
|
+
'.jpg': 'dataurl',
|
|
668
|
+
'.png': 'dataurl',
|
|
669
|
+
'.gif': 'dataurl',
|
|
670
|
+
'.wasm': 'dataurl',
|
|
671
|
+
'.plist': 'dataurl',
|
|
672
|
+
'.node': 'file'
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* @type {import('esbuild').BuildOptions}
|
|
677
|
+
*/
|
|
678
|
+
export const browserOptions = {
|
|
679
|
+
entryPoints: {
|
|
680
|
+
'bundle': './src-gen/frontend/index.js',
|
|
681
|
+
'secondary-window': './src-gen/frontend/secondary-index.js',
|
|
682
|
+
${this.ifMonaco(() => "'editor.worker': '@theia/monaco-editor-core/esm/vs/editor/common/services/editorWebWorkerMain.js',")}
|
|
683
|
+
${this.ifPackage('@theia/plugin-ext', "'plugin-worker': '@theia/plugin-ext/lib/hosted/browser/worker/worker-main.js',")}
|
|
684
|
+
},
|
|
685
|
+
assetNames: '[name]',
|
|
686
|
+
bundle: true,
|
|
687
|
+
outdir: 'lib/frontend',
|
|
688
|
+
platform: 'browser',
|
|
689
|
+
// Support UMD libraries
|
|
690
|
+
// but ensure that we also prioritize browser exports where possible
|
|
691
|
+
mainFields: ['browser', 'module', 'main'],
|
|
692
|
+
loader,
|
|
693
|
+
minify,
|
|
694
|
+
sourcemap,
|
|
695
|
+
plugins: [
|
|
696
|
+
problemMatcherPlugin(watch, 'browser'),
|
|
697
|
+
${this.ifMonaco(() => 'monacoNlsPlugin(),')}
|
|
698
|
+
nodeModulesPolyfillPlugin({
|
|
699
|
+
globals: {
|
|
700
|
+
Buffer: true,
|
|
701
|
+
process: false
|
|
702
|
+
}
|
|
703
|
+
}),
|
|
704
|
+
copy({
|
|
705
|
+
assets: [
|
|
706
|
+
{
|
|
707
|
+
// copy secondary window html file to lib folder
|
|
708
|
+
from: join(__dirname, 'src-gen/frontend/secondary-window.html'),
|
|
709
|
+
to: join(__dirname, 'lib', 'frontend')
|
|
710
|
+
}${this.ifPackage('@theia/plugin-ext', `,
|
|
711
|
+
{
|
|
712
|
+
// copy webview files to lib folder
|
|
713
|
+
from: join(resolvePackagePath('@theia/plugin-ext', __dirname), '..', 'src', 'main', 'browser', 'webview', 'pre', '*'),
|
|
714
|
+
to: join(__dirname, 'lib', 'webview', 'pre')
|
|
715
|
+
}`)}${this.ifPackage('@theia/plugin-ext-vscode', `,
|
|
716
|
+
{
|
|
717
|
+
// copy frontend plugin host files
|
|
718
|
+
from: join(resolvePackagePath('@theia/plugin-ext-vscode', __dirname), '..', 'lib', 'node', 'context', 'plugin-vscode-init-fe.js'),
|
|
719
|
+
to: join(__dirname, 'lib', 'frontend', 'context')
|
|
720
|
+
}`)}
|
|
721
|
+
]
|
|
722
|
+
})
|
|
723
|
+
]
|
|
724
|
+
};
|
|
725
|
+
`;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
protected compileESBuildNodeConfig(): string {
|
|
729
|
+
return `/**
|
|
730
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
731
|
+
* To customize the build process, change ./esbuild.mjs
|
|
732
|
+
*/
|
|
733
|
+
import { nativeDependenciesPlugin, problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
734
|
+
import { watch, loader, minify, sourcemap, join, __dirname } from './gen-esbuild.browser.mjs';
|
|
735
|
+
import { copy } from 'esbuild-plugin-copy';
|
|
736
|
+
import resolvePackagePath from 'resolve-package-path';
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* @type {Record<string, string>}
|
|
740
|
+
*/
|
|
741
|
+
export const nativeBindings = {
|
|
742
|
+
drivelist: 'drivelist/build/Release/drivelist.node'
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* @type {import('esbuild').BuildOptions}
|
|
747
|
+
*/
|
|
748
|
+
export const nodeOptions = {
|
|
749
|
+
entryPoints: {
|
|
750
|
+
'main': './src-gen/backend/main',
|
|
751
|
+
'ipc-bootstrap': '@theia/core/lib/node/messaging/ipc-bootstrap',
|
|
752
|
+
${this.ifElectron("'electron-main': './src-gen/backend/electron-main',")}
|
|
753
|
+
${this.ifPackage('@theia/plugin-ext', () => `// VS Code extension support:
|
|
754
|
+
'plugin-host': '@theia/plugin-ext/lib/hosted/node/plugin-host',`)}
|
|
755
|
+
${this.ifPackage('@theia/plugin-ext-headless', () => `// Theia Headless Plugin support:
|
|
756
|
+
'plugin-host-headless': '@theia/plugin-ext-headless/lib/hosted/node/plugin-host-headless',`)}
|
|
757
|
+
${this.ifPackage('@theia/process', () => `// Make sure the node-pty thread workers can be executed:
|
|
758
|
+
'worker/conoutSocketWorker': 'node-pty/lib/worker/conoutSocketWorker',
|
|
759
|
+
'conpty_console_list_agent': 'node-pty/lib/conpty_console_list_agent',`)}
|
|
760
|
+
${this.ifPackage('@theia/dev-container', () => `// VS Code Dev-Container communication:
|
|
761
|
+
'dev-container-server': '@theia/dev-container/lib/dev-container-server/dev-container-server',`)}
|
|
762
|
+
${this.ifPackage('@theia/plugin-ext', "'backend-init-theia': '@theia/plugin-ext/lib/hosted/node/scanners/backend-init-theia',")}
|
|
763
|
+
${this.ifPackage('@theia/filesystem', "'parcel-watcher': '@theia/filesystem/lib/node/parcel-watcher',")}
|
|
764
|
+
${this.ifPackage('@theia/plugin-ext-vscode', "'plugin-vscode-init': '@theia/plugin-ext-vscode/lib/node/plugin-vscode-init',")}
|
|
765
|
+
${this.ifPackage('@theia/api-provider-sample', "'gotd-api-init': '@theia/api-provider-sample/lib/plugin/gotd-api-init',")}
|
|
766
|
+
${this.ifPackage('@theia/git', "'git-locator-host': '@theia/git/lib/node/git-locator/git-locator-host',")}
|
|
767
|
+
},
|
|
768
|
+
assetNames: 'native/[name]',
|
|
769
|
+
bundle: true,
|
|
770
|
+
outdir: 'lib/backend',
|
|
771
|
+
platform: 'node',
|
|
772
|
+
mainFields: ['node', 'module', 'main'],
|
|
773
|
+
external: ['electron'],
|
|
774
|
+
loader,
|
|
775
|
+
minify,
|
|
776
|
+
sourcemap,
|
|
777
|
+
plugins: [
|
|
778
|
+
problemMatcherPlugin(watch, 'node'),
|
|
779
|
+
nativeDependenciesPlugin({
|
|
780
|
+
pty: ${this.ifPackage('@theia/process', 'true', 'false')},
|
|
781
|
+
ripgrep: ${this.ifPackage(['@theia/search-in-workspace', '@theia/file-search'], 'true', 'false')},
|
|
782
|
+
trash: ${this.ifPackage('@theia/filesystem', 'true', 'false')},
|
|
783
|
+
nativeBindings
|
|
784
|
+
}),
|
|
785
|
+
copy({
|
|
786
|
+
assets: [${this.ifPackage('@theia/terminal', `
|
|
787
|
+
{
|
|
788
|
+
// copy shell integration scripts
|
|
789
|
+
from: join(resolvePackagePath('@theia/terminal', __dirname), '..', 'src', 'node', 'shell-integrations', '**', '*'),
|
|
790
|
+
to: join(__dirname, 'lib', 'backend', 'shell-integrations')
|
|
791
|
+
},`)}
|
|
792
|
+
]
|
|
793
|
+
})
|
|
794
|
+
]
|
|
795
|
+
};
|
|
796
|
+
`;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
protected compileESBuildUserConfig(): string {
|
|
800
|
+
return `/**
|
|
801
|
+
* This file can be edited to adjust the ESBuild build process.
|
|
802
|
+
* To reset, delete this file and rerun theia build again.
|
|
803
|
+
*/
|
|
804
|
+
import { browserOptions, watch } from './gen-esbuild.browser.mjs';
|
|
805
|
+
${this.ifBrowserOnly(`import esbuild from 'esbuild';
|
|
806
|
+
|
|
807
|
+
const browserContext = await esbuild.context(browserOptions);
|
|
808
|
+
|
|
809
|
+
if (watch) {
|
|
810
|
+
await browserContext.watch();
|
|
811
|
+
} else {
|
|
812
|
+
try {
|
|
813
|
+
await browserContext.rebuild();
|
|
814
|
+
await browserContext.dispose();
|
|
815
|
+
} catch {
|
|
816
|
+
process.exit(1);
|
|
817
|
+
}
|
|
818
|
+
}`, `import { nodeOptions } from './gen-esbuild.node.mjs';
|
|
819
|
+
${this.ifElectron("import { electronOptions } from './gen-esbuild.electron.mjs';")}
|
|
820
|
+
import esbuild from 'esbuild';
|
|
821
|
+
|
|
822
|
+
const browserContext = await esbuild.context(browserOptions);
|
|
823
|
+
const nodeContext = await esbuild.context(nodeOptions);
|
|
824
|
+
${this.ifElectron('const electronContext = await esbuild.context(electronOptions);')}
|
|
825
|
+
|
|
826
|
+
if (watch) {
|
|
827
|
+
await Promise.all([
|
|
828
|
+
browserContext.watch(),
|
|
829
|
+
nodeContext.watch(),${this.ifElectron(`
|
|
830
|
+
electronContext.watch(),`)}
|
|
831
|
+
]);
|
|
832
|
+
} else {
|
|
833
|
+
try {
|
|
834
|
+
await browserContext.rebuild();
|
|
835
|
+
await browserContext.dispose();
|
|
836
|
+
await nodeContext.rebuild();
|
|
837
|
+
await nodeContext.dispose();${this.ifElectron(`
|
|
838
|
+
await electronContext.rebuild();
|
|
839
|
+
await electronContext.dispose();`)}
|
|
840
|
+
} catch {
|
|
841
|
+
process.exit(1);
|
|
842
|
+
}
|
|
843
|
+
}`)}
|
|
844
|
+
`;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
protected compileESBuildElectronConfig(): string {
|
|
848
|
+
return `/**
|
|
849
|
+
* Don't touch this file. It will be regenerated by theia build.
|
|
850
|
+
* To customize the build process, change ./esbuild.mjs
|
|
851
|
+
*/
|
|
852
|
+
import { problemMatcherPlugin } from '@theia/bundle-plugin';
|
|
853
|
+
import { watch, loader, minify, sourcemap } from './gen-esbuild.browser.mjs';
|
|
854
|
+
|
|
855
|
+
/**
|
|
856
|
+
* @type {import('esbuild').BuildOptions}
|
|
857
|
+
*/
|
|
858
|
+
export const electronOptions = {
|
|
859
|
+
entryPoints: {
|
|
860
|
+
'preload': './src-gen/frontend/preload'
|
|
861
|
+
},
|
|
862
|
+
bundle: true,
|
|
863
|
+
outdir: 'lib/frontend',
|
|
864
|
+
platform: 'node',
|
|
865
|
+
mainFields: ['node', 'module', 'main'],
|
|
866
|
+
external: ['electron'],
|
|
867
|
+
loader,
|
|
868
|
+
minify,
|
|
869
|
+
sourcemap,
|
|
870
|
+
plugins: [
|
|
871
|
+
problemMatcherPlugin(watch, 'electron')
|
|
872
|
+
]
|
|
873
|
+
};
|
|
586
874
|
`;
|
|
587
875
|
}
|
|
588
876
|
|
|
@@ -19,11 +19,12 @@
|
|
|
19
19
|
import { EOL } from 'os';
|
|
20
20
|
import { AbstractGenerator, GeneratorOptions } from './abstract-generator';
|
|
21
21
|
import { existsSync, readFileSync } from 'fs';
|
|
22
|
+
import { BundlerGenerator } from './bundler-generator';
|
|
22
23
|
|
|
23
24
|
export class FrontendGenerator extends AbstractGenerator {
|
|
24
25
|
|
|
25
26
|
async generate(options?: GeneratorOptions): Promise<void> {
|
|
26
|
-
await this.write(this.pck.frontend('index.html'), this.compileIndexHtml(this.pck.targetFrontendModules));
|
|
27
|
+
await this.write(this.pck.frontend('index.html'), await this.compileIndexHtml(this.pck.targetFrontendModules));
|
|
27
28
|
await this.write(this.pck.frontend('index.js'), this.compileIndexJs(this.pck.targetFrontendModules, this.pck.targetFrontendPreloadModules));
|
|
28
29
|
await this.write(this.pck.frontend('secondary-window.html'), this.compileSecondaryWindowHtml());
|
|
29
30
|
await this.write(this.pck.frontend('secondary-index.js'), this.compileSecondaryIndexJs(this.pck.secondaryWindowModules));
|
|
@@ -46,11 +47,11 @@ export class FrontendGenerator extends AbstractGenerator {
|
|
|
46
47
|
return template;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
protected compileIndexHtml(frontendModules: Map<string, string>): string {
|
|
50
|
+
protected async compileIndexHtml(frontendModules: Map<string, string>): Promise<string> {
|
|
50
51
|
return `<!DOCTYPE html>
|
|
51
52
|
<html lang="en">
|
|
52
53
|
|
|
53
|
-
<head>${this.compileIndexHead(frontendModules)}
|
|
54
|
+
<head>${await this.compileIndexHead(frontendModules)}
|
|
54
55
|
</head>
|
|
55
56
|
|
|
56
57
|
<body>
|
|
@@ -61,11 +62,13 @@ export class FrontendGenerator extends AbstractGenerator {
|
|
|
61
62
|
</html>`;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
protected compileIndexHead(frontendModules: Map<string, string>): string {
|
|
65
|
+
protected async compileIndexHead(frontendModules: Map<string, string>): Promise<string> {
|
|
66
|
+
const preferEsbuild = await new BundlerGenerator(this.pck, this.options).preferESBuild();
|
|
65
67
|
return `
|
|
66
68
|
<meta charset="UTF-8">
|
|
67
69
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
68
70
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
71
|
+
${preferEsbuild ? '<link rel="stylesheet" href="./bundle.css">' : ''}
|
|
69
72
|
<title>${this.pck.props.frontend.config.applicationName}</title>`;
|
|
70
73
|
}
|
|
71
74
|
|
package/src/generator/index.ts
CHANGED
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
export * from './
|
|
17
|
+
export * from './bundler-generator';
|
|
18
18
|
export * from './frontend-generator';
|
|
19
19
|
export * from './backend-generator';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { AbstractGenerator } from './abstract-generator';
|
|
2
|
-
export declare class WebpackGenerator extends AbstractGenerator {
|
|
3
|
-
generate(): Promise<void>;
|
|
4
|
-
protected shouldGenerateUserWebpackConfig(): Promise<boolean>;
|
|
5
|
-
get configPath(): string;
|
|
6
|
-
get genConfigPath(): string;
|
|
7
|
-
get genNodeConfigPath(): string;
|
|
8
|
-
protected compileWebpackConfig(): string;
|
|
9
|
-
protected compileUserWebpackConfig(): string;
|
|
10
|
-
protected compileNodeWebpackConfig(): string;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=webpack-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-generator.d.ts","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAE7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAUf,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,oBAAoB,IAAI,MAAM;IA4TxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAyB5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAmM/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"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"}
|