@theia/application-manager 1.57.1 → 1.58.0
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-process.d.ts +1 -1
- package/lib/application-process.d.ts.map +1 -1
- package/lib/application-process.js +19 -5
- package/lib/application-process.js.map +1 -1
- package/lib/generator/webpack-generator.d.ts +0 -1
- package/lib/generator/webpack-generator.d.ts.map +1 -1
- package/lib/generator/webpack-generator.js +28 -7
- package/lib/generator/webpack-generator.js.map +1 -1
- package/package.json +6 -6
- package/src/application-process.ts +19 -5
- package/src/generator/webpack-generator.ts +28 -8
|
@@ -15,7 +15,7 @@ export declare class ApplicationProcess {
|
|
|
15
15
|
canRun(command: string): boolean;
|
|
16
16
|
run(command: string, args: string[], options?: cp.SpawnOptions): Promise<void>;
|
|
17
17
|
spawnBin(command: string, args: string[], options?: cp.SpawnOptions): cp.ChildProcess;
|
|
18
|
-
protected resolveBin(command: string): string;
|
|
18
|
+
protected resolveBin(rootPath: string, command: string): string | undefined;
|
|
19
19
|
protected promisify(command: string, p: cp.ChildProcess): Promise<void>;
|
|
20
20
|
}
|
|
21
21
|
//# 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;
|
|
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,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB1E"}
|
|
@@ -38,22 +38,36 @@ class ApplicationProcess {
|
|
|
38
38
|
return cp.fork(modulePath, args, Object.assign({}, this.defaultOptions, options));
|
|
39
39
|
}
|
|
40
40
|
canRun(command) {
|
|
41
|
-
|
|
41
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
42
|
+
return !!binPath && fs.existsSync(binPath);
|
|
42
43
|
}
|
|
43
44
|
run(command, args, options) {
|
|
44
45
|
const commandProcess = this.spawnBin(command, args, options);
|
|
45
46
|
return this.promisify(command, commandProcess);
|
|
46
47
|
}
|
|
47
48
|
spawnBin(command, args, options) {
|
|
48
|
-
const binPath = this.resolveBin(command);
|
|
49
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
50
|
+
if (!binPath) {
|
|
51
|
+
throw new Error(`Could not resolve ${command} relative to ${this.binProjectPath}`);
|
|
52
|
+
}
|
|
49
53
|
return this.spawn(binPath, args, {
|
|
50
54
|
...options,
|
|
51
55
|
shell: true
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
|
-
resolveBin(command) {
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
resolveBin(rootPath, command) {
|
|
59
|
+
let commandPath = path.resolve(rootPath, 'node_modules', '.bin', command);
|
|
60
|
+
if (process.platform === 'win32') {
|
|
61
|
+
commandPath = commandPath + '.cmd';
|
|
62
|
+
}
|
|
63
|
+
if (fs.existsSync(commandPath)) {
|
|
64
|
+
return commandPath;
|
|
65
|
+
}
|
|
66
|
+
const parentDir = path.dirname(rootPath);
|
|
67
|
+
if (parentDir === rootPath) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
return this.resolveBin(parentDir, command);
|
|
57
71
|
}
|
|
58
72
|
promisify(command, p) {
|
|
59
73
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.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;AAC/B,oCAAoC;AAGpC,MAAa,kBAAkB;IAO3B,YACuB,GAAuB,EACvB,cAAsB;QADtB,QAAG,GAAH,GAAG,CAAoB;QACvB,mBAAc,GAAd,cAAc,CAAQ;QAP1B,mBAAc,GAAG;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC;IAKE,CAAC;IAEL,KAAK,CAAC,OAAe,EAAE,IAAe,EAAE,OAAyB;QAC7D,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE;YACxE,GAAG,OAAO;YACV,KAAK,EAAE,IAAI;SACd,CAAC,CAAC,CAAC;IACR,CAAC;IAED,IAAI,CAAC,UAAkB,EAAE,IAAe,EAAE,OAAwB;QAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,OAAe;QAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"application-process.js","sourceRoot":"","sources":["../src/application-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export declare class WebpackGenerator extends AbstractGenerator {
|
|
|
5
5
|
get configPath(): string;
|
|
6
6
|
get genConfigPath(): string;
|
|
7
7
|
get genNodeConfigPath(): string;
|
|
8
|
-
protected resolve(moduleName: string, path: string): string;
|
|
9
8
|
protected compileWebpackConfig(): string;
|
|
10
9
|
protected compileUserWebpackConfig(): string;
|
|
11
10
|
protected compileNodeWebpackConfig(): string;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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;IA0QxC,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAyB5C,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAsL/C"}
|
|
@@ -45,9 +45,6 @@ class WebpackGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
45
45
|
get genNodeConfigPath() {
|
|
46
46
|
return this.pck.path('gen-webpack.node.config.js');
|
|
47
47
|
}
|
|
48
|
-
resolve(moduleName, path) {
|
|
49
|
-
return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
|
|
50
|
-
}
|
|
51
48
|
compileWebpackConfig() {
|
|
52
49
|
return `/**
|
|
53
50
|
* Don't touch this file. It will be regenerated by theia build.
|
|
@@ -59,8 +56,9 @@ const webpack = require('webpack');
|
|
|
59
56
|
const yargs = require('yargs');
|
|
60
57
|
const resolvePackagePath = require('resolve-package-path');
|
|
61
58
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
62
|
-
const CompressionPlugin = require('compression-webpack-plugin')
|
|
63
|
-
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
|
59
|
+
const CompressionPlugin = require('compression-webpack-plugin');
|
|
60
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
61
|
+
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
64
62
|
|
|
65
63
|
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
66
64
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
@@ -97,7 +95,8 @@ const plugins = [
|
|
|
97
95
|
new webpack.ProvidePlugin({
|
|
98
96
|
// the Buffer class doesn't exist in the browser but some dependencies rely on it
|
|
99
97
|
Buffer: ['buffer', 'Buffer']
|
|
100
|
-
})
|
|
98
|
+
}),
|
|
99
|
+
new MonacoWebpackPlugin()
|
|
101
100
|
];
|
|
102
101
|
// it should go after copy-plugin in order to compress monaco as well
|
|
103
102
|
if (staticCompression) {
|
|
@@ -169,6 +168,10 @@ module.exports = [{
|
|
|
169
168
|
test: /source-map-support/,
|
|
170
169
|
loader: 'ignore-loader'
|
|
171
170
|
},
|
|
171
|
+
{
|
|
172
|
+
test: /\\.d\\.ts$/,
|
|
173
|
+
loader: 'ignore-loader'
|
|
174
|
+
},
|
|
172
175
|
{
|
|
173
176
|
test: /\\.js$/,
|
|
174
177
|
enforce: 'pre',
|
|
@@ -238,6 +241,7 @@ module.exports = [{
|
|
|
238
241
|
filename: "[name].css",
|
|
239
242
|
chunkFilename: "[id].css",
|
|
240
243
|
}),
|
|
244
|
+
new MonacoWebpackPlugin(),
|
|
241
245
|
],
|
|
242
246
|
devtool: 'source-map',
|
|
243
247
|
entry: {
|
|
@@ -341,6 +345,7 @@ const yargs = require('yargs');
|
|
|
341
345
|
const webpack = require('webpack');
|
|
342
346
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
343
347
|
const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
|
|
348
|
+
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
344
349
|
|
|
345
350
|
const { mode } = yargs.option('mode', {
|
|
346
351
|
description: "Mode to use",
|
|
@@ -384,6 +389,15 @@ const nativePlugin = new NativeWebpackPlugin({
|
|
|
384
389
|
}
|
|
385
390
|
});
|
|
386
391
|
|
|
392
|
+
${this.ifPackage('@theia/process', () => `// Ensure that node-pty is correctly hoisted
|
|
393
|
+
try {
|
|
394
|
+
require.resolve('node-pty');
|
|
395
|
+
} catch {
|
|
396
|
+
console.error('"node-pty" dependency is not installed correctly. Ensure that it is available in the root node_modules directory.');
|
|
397
|
+
console.error('Exiting webpack build process.');
|
|
398
|
+
process.exit(1);
|
|
399
|
+
}`)}
|
|
400
|
+
|
|
387
401
|
/** @type {import('webpack').Configuration} */
|
|
388
402
|
const config = {
|
|
389
403
|
mode,
|
|
@@ -428,6 +442,10 @@ const config = {
|
|
|
428
442
|
name: 'native/[name].[ext]'
|
|
429
443
|
}
|
|
430
444
|
},
|
|
445
|
+
{
|
|
446
|
+
test: /\\.d\\.ts$/,
|
|
447
|
+
loader: 'ignore-loader'
|
|
448
|
+
},
|
|
431
449
|
{
|
|
432
450
|
test: /\\.js$/,
|
|
433
451
|
enforce: 'pre',
|
|
@@ -447,7 +465,8 @@ const config = {
|
|
|
447
465
|
// Optional node dependencies can be safely ignored
|
|
448
466
|
new webpack.IgnorePlugin({
|
|
449
467
|
checkResource: resource => ignoredResources.has(resource)
|
|
450
|
-
})
|
|
468
|
+
}),
|
|
469
|
+
new MonacoWebpackPlugin()
|
|
451
470
|
],
|
|
452
471
|
optimization: {
|
|
453
472
|
// Split and reuse code across the various entry points
|
|
@@ -468,6 +487,8 @@ const config = {
|
|
|
468
487
|
ignoreWarnings: [
|
|
469
488
|
// Some packages do not have source maps, that's ok
|
|
470
489
|
/Failed to parse source map/,
|
|
490
|
+
// require with expressions are not supported
|
|
491
|
+
/the request of a dependency is an expression/,
|
|
471
492
|
// Some packages use dynamic requires, we can safely ignore them (they are handled by the native webpack plugin)
|
|
472
493
|
/require function is used in a way in which dependencies cannot be statically extracted/, {
|
|
473
494
|
module: /yargs/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-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,8BAA8B;AAC9B,+BAA+B;AAC/B,6DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,sCAAiB;IAEnD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAES,KAAK,CAAC,+BAA+B;QAC3C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvD,CAAC;IAES,
|
|
1
|
+
{"version":3,"file":"webpack-generator.js","sourceRoot":"","sources":["../../src/generator/webpack-generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/application-manager",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.58.0",
|
|
4
4
|
"description": "Theia application manager API.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"@babel/plugin-transform-classes": "^7.10.0",
|
|
34
34
|
"@babel/plugin-transform-runtime": "^7.10.0",
|
|
35
35
|
"@babel/preset-env": "^7.10.0",
|
|
36
|
-
"@theia/application-package": "1.
|
|
37
|
-
"@theia/ffmpeg": "1.
|
|
38
|
-
"@theia/native-webpack-plugin": "1.
|
|
36
|
+
"@theia/application-package": "1.58.0",
|
|
37
|
+
"@theia/ffmpeg": "1.58.0",
|
|
38
|
+
"@theia/native-webpack-plugin": "1.58.0",
|
|
39
39
|
"@types/fs-extra": "^4.0.2",
|
|
40
40
|
"@types/semver": "^7.5.0",
|
|
41
41
|
"babel-loader": "^8.2.2",
|
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@theia/ext-scripts": "1.
|
|
77
|
+
"@theia/ext-scripts": "1.58.0",
|
|
78
78
|
"@types/node-abi": "*"
|
|
79
79
|
},
|
|
80
80
|
"nyc": {
|
|
81
81
|
"extends": "../../configs/nyc.json"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "6594f32b9727aea20d88934bf386dee06d08fa5e"
|
|
84
84
|
}
|
|
@@ -43,7 +43,8 @@ export class ApplicationProcess {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
canRun(command: string): boolean {
|
|
46
|
-
|
|
46
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
47
|
+
return !!binPath && fs.existsSync(binPath);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
run(command: string, args: string[], options?: cp.SpawnOptions): Promise<void> {
|
|
@@ -52,16 +53,29 @@ export class ApplicationProcess {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
spawnBin(command: string, args: string[], options?: cp.SpawnOptions): cp.ChildProcess {
|
|
55
|
-
const binPath = this.resolveBin(command);
|
|
56
|
+
const binPath = this.resolveBin(this.binProjectPath, command);
|
|
57
|
+
if (!binPath) {
|
|
58
|
+
throw new Error(`Could not resolve ${command} relative to ${this.binProjectPath}`);
|
|
59
|
+
}
|
|
56
60
|
return this.spawn(binPath, args, {
|
|
57
61
|
...options,
|
|
58
62
|
shell: true
|
|
59
63
|
});
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
protected resolveBin(command: string): string {
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
protected resolveBin(rootPath: string, command: string): string | undefined {
|
|
67
|
+
let commandPath = path.resolve(rootPath, 'node_modules', '.bin', command);
|
|
68
|
+
if (process.platform === 'win32') {
|
|
69
|
+
commandPath = commandPath + '.cmd';
|
|
70
|
+
}
|
|
71
|
+
if (fs.existsSync(commandPath)) {
|
|
72
|
+
return commandPath;
|
|
73
|
+
}
|
|
74
|
+
const parentDir = path.dirname(rootPath);
|
|
75
|
+
if (parentDir === rootPath) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
return this.resolveBin(parentDir, command);
|
|
65
79
|
}
|
|
66
80
|
|
|
67
81
|
protected promisify(command: string, p: cp.ChildProcess): Promise<void> {
|
|
@@ -50,10 +50,6 @@ export class WebpackGenerator extends AbstractGenerator {
|
|
|
50
50
|
return this.pck.path('gen-webpack.node.config.js');
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
protected resolve(moduleName: string, path: string): string {
|
|
54
|
-
return this.pck.resolveModulePath(moduleName, path).split(paths.sep).join('/');
|
|
55
|
-
}
|
|
56
|
-
|
|
57
53
|
protected compileWebpackConfig(): string {
|
|
58
54
|
return `/**
|
|
59
55
|
* Don't touch this file. It will be regenerated by theia build.
|
|
@@ -65,8 +61,9 @@ const webpack = require('webpack');
|
|
|
65
61
|
const yargs = require('yargs');
|
|
66
62
|
const resolvePackagePath = require('resolve-package-path');
|
|
67
63
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
68
|
-
const CompressionPlugin = require('compression-webpack-plugin')
|
|
69
|
-
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
|
64
|
+
const CompressionPlugin = require('compression-webpack-plugin');
|
|
65
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
66
|
+
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
70
67
|
|
|
71
68
|
const outputPath = path.resolve(__dirname, 'lib', 'frontend');
|
|
72
69
|
const { mode, staticCompression } = yargs.option('mode', {
|
|
@@ -103,7 +100,8 @@ const plugins = [
|
|
|
103
100
|
new webpack.ProvidePlugin({
|
|
104
101
|
// the Buffer class doesn't exist in the browser but some dependencies rely on it
|
|
105
102
|
Buffer: ['buffer', 'Buffer']
|
|
106
|
-
})
|
|
103
|
+
}),
|
|
104
|
+
new MonacoWebpackPlugin()
|
|
107
105
|
];
|
|
108
106
|
// it should go after copy-plugin in order to compress monaco as well
|
|
109
107
|
if (staticCompression) {
|
|
@@ -175,6 +173,10 @@ module.exports = [{
|
|
|
175
173
|
test: /source-map-support/,
|
|
176
174
|
loader: 'ignore-loader'
|
|
177
175
|
},
|
|
176
|
+
{
|
|
177
|
+
test: /\\.d\\.ts$/,
|
|
178
|
+
loader: 'ignore-loader'
|
|
179
|
+
},
|
|
178
180
|
{
|
|
179
181
|
test: /\\.js$/,
|
|
180
182
|
enforce: 'pre',
|
|
@@ -244,6 +246,7 @@ module.exports = [{
|
|
|
244
246
|
filename: "[name].css",
|
|
245
247
|
chunkFilename: "[id].css",
|
|
246
248
|
}),
|
|
249
|
+
new MonacoWebpackPlugin(),
|
|
247
250
|
],
|
|
248
251
|
devtool: 'source-map',
|
|
249
252
|
entry: {
|
|
@@ -349,6 +352,7 @@ const yargs = require('yargs');
|
|
|
349
352
|
const webpack = require('webpack');
|
|
350
353
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
351
354
|
const NativeWebpackPlugin = require('@theia/native-webpack-plugin');
|
|
355
|
+
const { MonacoWebpackPlugin } = require('@theia/native-webpack-plugin/lib/monaco-webpack-plugins.js');
|
|
352
356
|
|
|
353
357
|
const { mode } = yargs.option('mode', {
|
|
354
358
|
description: "Mode to use",
|
|
@@ -392,6 +396,15 @@ const nativePlugin = new NativeWebpackPlugin({
|
|
|
392
396
|
}
|
|
393
397
|
});
|
|
394
398
|
|
|
399
|
+
${this.ifPackage('@theia/process', () => `// Ensure that node-pty is correctly hoisted
|
|
400
|
+
try {
|
|
401
|
+
require.resolve('node-pty');
|
|
402
|
+
} catch {
|
|
403
|
+
console.error('"node-pty" dependency is not installed correctly. Ensure that it is available in the root node_modules directory.');
|
|
404
|
+
console.error('Exiting webpack build process.');
|
|
405
|
+
process.exit(1);
|
|
406
|
+
}`)}
|
|
407
|
+
|
|
395
408
|
/** @type {import('webpack').Configuration} */
|
|
396
409
|
const config = {
|
|
397
410
|
mode,
|
|
@@ -436,6 +449,10 @@ const config = {
|
|
|
436
449
|
name: 'native/[name].[ext]'
|
|
437
450
|
}
|
|
438
451
|
},
|
|
452
|
+
{
|
|
453
|
+
test: /\\.d\\.ts$/,
|
|
454
|
+
loader: 'ignore-loader'
|
|
455
|
+
},
|
|
439
456
|
{
|
|
440
457
|
test: /\\.js$/,
|
|
441
458
|
enforce: 'pre',
|
|
@@ -455,7 +472,8 @@ const config = {
|
|
|
455
472
|
// Optional node dependencies can be safely ignored
|
|
456
473
|
new webpack.IgnorePlugin({
|
|
457
474
|
checkResource: resource => ignoredResources.has(resource)
|
|
458
|
-
})
|
|
475
|
+
}),
|
|
476
|
+
new MonacoWebpackPlugin()
|
|
459
477
|
],
|
|
460
478
|
optimization: {
|
|
461
479
|
// Split and reuse code across the various entry points
|
|
@@ -476,6 +494,8 @@ const config = {
|
|
|
476
494
|
ignoreWarnings: [
|
|
477
495
|
// Some packages do not have source maps, that's ok
|
|
478
496
|
/Failed to parse source map/,
|
|
497
|
+
// require with expressions are not supported
|
|
498
|
+
/the request of a dependency is an expression/,
|
|
479
499
|
// Some packages use dynamic requires, we can safely ignore them (they are handled by the native webpack plugin)
|
|
480
500
|
/require function is used in a way in which dependencies cannot be statically extracted/, {
|
|
481
501
|
module: /yargs/
|