@electron-forge/plugin-vite 6.1.0 → 6.2.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/LICENSE +19 -0
- package/README.md +10 -10
- package/dist/ViteConfig.d.ts.map +1 -1
- package/dist/ViteConfig.js +4 -11
- package/dist/VitePlugin.d.ts.map +1 -1
- package/dist/VitePlugin.js +52 -16
- package/index.ts +5 -0
- package/package.json +7 -6
- package/src/Config.ts +34 -0
- package/src/ViteConfig.ts +123 -0
- package/src/VitePlugin.ts +202 -0
- package/src/util/plugins.ts +35 -0
- package/test/ViteConfig_spec.ts +91 -0
- package/test/util/plugins_spec.ts +45 -0
- package/tsconfig.tsbuildinfo +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
Copyright (c) 2016 Samuel Attard
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
5
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
6
|
+
the Software without restriction, including without limitation the rights to
|
|
7
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
8
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
9
|
+
subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
16
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
17
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
18
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
19
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -16,21 +16,21 @@ module.exports = {
|
|
|
16
16
|
{
|
|
17
17
|
// `entry` is just an alias for `build.lib.entry` in the corresponding file of `config`.
|
|
18
18
|
entry: 'src/main.js',
|
|
19
|
-
config: 'vite.main.config.mjs'
|
|
19
|
+
config: 'vite.main.config.mjs'
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
entry: 'src/preload.js',
|
|
23
|
-
config: 'vite.preload.config.mjs'
|
|
24
|
-
}
|
|
23
|
+
config: 'vite.preload.config.mjs'
|
|
24
|
+
}
|
|
25
25
|
],
|
|
26
26
|
renderer: [
|
|
27
27
|
{
|
|
28
28
|
name: 'main_window',
|
|
29
|
-
config: 'vite.renderer.config.mjs'
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
]
|
|
29
|
+
config: 'vite.renderer.config.mjs'
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
35
|
};
|
|
36
|
-
```
|
|
36
|
+
```
|
package/dist/ViteConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViteConfig.d.ts","sourceRoot":"","sources":["../src/ViteConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAe,UAAU,EAAE,MAAM,MAAM,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C;;;GAGG;AACH,oBAAY,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAK1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAoB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,mBAAmB,CAAyB;gBAEvB,YAAY,EAAE,gBAAgB,EAAmB,UAAU,EAAE,MAAM,EAAmB,MAAM,EAAE,OAAO;IAKlI,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM;;;;;IAShE,IAAI,IAAI,IAAI,MAAM,CAKjB;IAEK,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ViteConfig.d.ts","sourceRoot":"","sources":["../src/ViteConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAe,UAAU,EAAE,MAAM,MAAM,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C;;;GAGG;AACH,oBAAY,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAK1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAoB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,mBAAmB,CAAyB;gBAEvB,YAAY,EAAE,gBAAgB,EAAmB,UAAU,EAAE,MAAM,EAAmB,MAAM,EAAE,OAAO;IAKlI,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM;;;;;IAShE,IAAI,IAAI,IAAI,MAAM,CAKjB;IAEK,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgB7C,cAAc,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA0CpD,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAsBjD"}
|
package/dist/ViteConfig.js
CHANGED
|
@@ -41,11 +41,8 @@ class ViteConfigGenerator {
|
|
|
41
41
|
continue;
|
|
42
42
|
}
|
|
43
43
|
const NAME = name.toUpperCase().replace(/ /g, '_');
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
defines[`${NAME}_VITE_DEV_SERVER_URL`] = this.isProd
|
|
47
|
-
? undefined
|
|
48
|
-
: ((_a = userConfig === null || userConfig === void 0 ? void 0 : userConfig.server) === null || _a === void 0 ? void 0 : _a.port) && JSON.stringify(`http://localhost:${userConfig.server.port}`);
|
|
44
|
+
// `server.port` is set in `launchRendererDevServers` in `VitePlugin.ts`.
|
|
45
|
+
defines[`${NAME}_VITE_DEV_SERVER_URL`] = this.isProd ? undefined : JSON.stringify(`http://localhost:${(_a = userConfig === null || userConfig === void 0 ? void 0 : userConfig.server) === null || _a === void 0 ? void 0 : _a.port}`);
|
|
49
46
|
defines[`${NAME}_VITE_NAME`] = JSON.stringify(name);
|
|
50
47
|
}
|
|
51
48
|
return defines;
|
|
@@ -95,10 +92,8 @@ class ViteConfigGenerator {
|
|
|
95
92
|
if (!Array.isArray(this.pluginConfig.renderer)) {
|
|
96
93
|
throw new Error('"config.renderer" must be an Array');
|
|
97
94
|
}
|
|
98
|
-
let port = 5173;
|
|
99
95
|
const configs = ((_a = this.rendererConfigCache) !== null && _a !== void 0 ? _a : (this.rendererConfigCache = this.pluginConfig.renderer.map(async ({ name, config }) => {
|
|
100
|
-
var _a
|
|
101
|
-
var _d, _e;
|
|
96
|
+
var _a;
|
|
102
97
|
const defaultConfig = {
|
|
103
98
|
// Ensure that each build config loads the .env file correctly.
|
|
104
99
|
mode: this.mode,
|
|
@@ -110,12 +105,10 @@ class ViteConfigGenerator {
|
|
|
110
105
|
clearScreen: false,
|
|
111
106
|
};
|
|
112
107
|
const loadResult = (_a = (await this.resolveConfig(config))) !== null && _a !== void 0 ? _a : { path: '', config: {}, dependencies: [] };
|
|
113
|
-
(_b = (_d = loadResult.config).server) !== null && _b !== void 0 ? _b : (_d.server = {});
|
|
114
|
-
(_c = (_e = loadResult.config.server).port) !== null && _c !== void 0 ? _c : (_e.port = port++);
|
|
115
108
|
return (0, vite_1.mergeConfig)(defaultConfig, loadResult.config);
|
|
116
109
|
})));
|
|
117
110
|
return await Promise.all(configs);
|
|
118
111
|
}
|
|
119
112
|
}
|
|
120
113
|
exports.default = ViteConfigGenerator;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBRTdCLGtEQUEwQjtBQUMxQiwrQkFBOEU7QUFHOUUsNENBQWtEO0FBRWxELE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFRekQsTUFBcUIsbUJBQW1CO0lBS3RDLFlBQTZCLFlBQThCLEVBQW1CLFVBQWtCLEVBQW1CLE1BQWU7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNoSSxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWMsRUFBRSxZQUFnQyxFQUFFOztRQUM5RCxpR0FBaUc7UUFDakcsdURBQXVEO1FBQ3ZELE1BQUEsU0FBUyxDQUFDLE9BQU8sb0NBQWpCLFNBQVMsQ0FBQyxPQUFPLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUM7UUFDdEQsNkNBQTZDO1FBQzdDLE1BQUEsU0FBUyxDQUFDLElBQUksb0NBQWQsU0FBUyxDQUFDLElBQUksR0FBSyxJQUFJLENBQUMsSUFBSSxFQUFDO1FBQzdCLE9BQU8sSUFBQSx5QkFBa0IsRUFBQyxTQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTiw4Q0FBOEM7UUFDOUMsaUhBQWlIO1FBQ2pILDRFQUE0RTtRQUM1RSxPQUFPLElBQUksQ0FBQyxNQUFNLENB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
|
package/dist/VitePlugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VitePlugin.d.ts","sourceRoot":"","sources":["../src/VitePlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAClE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IAE/B,IAAI,SAAU;IAErB,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,UAAU,CAAU;IAG5B,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"VitePlugin.d.ts","sourceRoot":"","sources":["../src/VitePlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU,CAAC,gBAAgB,CAAC;IAClE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IAE/B,IAAI,SAAU;IAErB,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,UAAU,CAAU;IAG5B,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,OAAO,CAA4B;IAE3C,IAAI,QAAS,MAAM,KAAG,IAAI,CAMxB;IAEF,OAAO,CAAC,cAAc;IAKtB,OAAO,KAAK,eAAe,GAE1B;IAED,QAAQ,QAAO,iBAAiB,CAkB9B;IAEF,UAAU,QAAa,QAAQ,WAAW,CAAC,CA+BzC;IAGF,KAAK,uBAA0B,QAAQ,IAAI,CAAC,CAoC1C;IAGF,aAAa,QAAa,QAAQ,IAAI,CAAC,CAOrC;IAEF,wBAAwB,QAAa,QAAQ,IAAI,CAAC,CAuBhD;IAEF,WAAW,YAAa;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,8BAAgB,IAAI,CAmB/E;CACH;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/VitePlugin.js
CHANGED
|
@@ -33,6 +33,14 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
33
33
|
await Promise.all([this.build(), this.buildRenderer()]);
|
|
34
34
|
}, 'Building vite bundles'),
|
|
35
35
|
],
|
|
36
|
+
postStart: async (_config, child) => {
|
|
37
|
+
d('hooking electron process exit');
|
|
38
|
+
child.on('exit', () => {
|
|
39
|
+
if (child.restarted)
|
|
40
|
+
return;
|
|
41
|
+
this.exitHandler({ cleanup: true, exit: true });
|
|
42
|
+
});
|
|
43
|
+
},
|
|
36
44
|
};
|
|
37
45
|
};
|
|
38
46
|
this.startLogic = async () => {
|
|
@@ -43,21 +51,22 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
43
51
|
return {
|
|
44
52
|
tasks: [
|
|
45
53
|
{
|
|
46
|
-
title: '
|
|
54
|
+
title: 'Launching dev servers for renderer process code',
|
|
47
55
|
task: async () => {
|
|
48
|
-
await this.
|
|
56
|
+
await this.launchRendererDevServers();
|
|
49
57
|
},
|
|
50
58
|
options: {
|
|
59
|
+
persistentOutput: true,
|
|
51
60
|
showTimer: true,
|
|
52
61
|
},
|
|
53
62
|
},
|
|
63
|
+
// The main process depends on the `server.port` of the renderer process, so the renderer process is run first.
|
|
54
64
|
{
|
|
55
|
-
title: '
|
|
65
|
+
title: 'Compiling main process code',
|
|
56
66
|
task: async () => {
|
|
57
|
-
await this.
|
|
67
|
+
await this.build(true);
|
|
58
68
|
},
|
|
59
69
|
options: {
|
|
60
|
-
persistentOutput: true,
|
|
61
70
|
showTimer: true,
|
|
62
71
|
},
|
|
63
72
|
},
|
|
@@ -67,16 +76,35 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
67
76
|
};
|
|
68
77
|
// Main process, Preload scripts and Worker process, etc.
|
|
69
78
|
this.build = async (watch = false) => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
await Promise.all((await this.configGenerator.getBuildConfig(watch)).map((userConfig) => {
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
var _a;
|
|
82
|
+
vite_1.default
|
|
83
|
+
.build({
|
|
84
|
+
// Avoid recursive builds caused by users configuring @electron-forge/plugin-vite in Vite config file.
|
|
85
|
+
configFile: false,
|
|
86
|
+
...userConfig,
|
|
87
|
+
plugins: [
|
|
88
|
+
{
|
|
89
|
+
name: '@electron-forge/plugin-vite:start',
|
|
90
|
+
closeBundle() {
|
|
91
|
+
resolve();
|
|
92
|
+
// TODO: implement hot-restart here
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
...((_a = userConfig.plugins) !== null && _a !== void 0 ? _a : []),
|
|
96
|
+
],
|
|
97
|
+
})
|
|
98
|
+
.then((result) => {
|
|
99
|
+
const isWatcher = (x) => typeof (x === null || x === void 0 ? void 0 : x.close) === 'function';
|
|
100
|
+
if (isWatcher(result)) {
|
|
101
|
+
this.watchers.push(result);
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
})
|
|
105
|
+
.catch(reject);
|
|
75
106
|
});
|
|
76
|
-
|
|
77
|
-
this.watchers.push(buildResult);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
107
|
+
}));
|
|
80
108
|
};
|
|
81
109
|
// Renderer process
|
|
82
110
|
this.buildRenderer = async () => {
|
|
@@ -88,6 +116,7 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
88
116
|
}
|
|
89
117
|
};
|
|
90
118
|
this.launchRendererDevServers = async () => {
|
|
119
|
+
var _a;
|
|
91
120
|
for (const userConfig of await this.configGenerator.getRendererConfig()) {
|
|
92
121
|
const viteDevServer = await vite_1.default.createServer({
|
|
93
122
|
configFile: false,
|
|
@@ -95,8 +124,15 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
95
124
|
});
|
|
96
125
|
await viteDevServer.listen();
|
|
97
126
|
viteDevServer.printUrls();
|
|
127
|
+
this.servers.push(viteDevServer);
|
|
98
128
|
if (viteDevServer.httpServer) {
|
|
99
|
-
|
|
129
|
+
// Make suee that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198)
|
|
130
|
+
const addressInfo = viteDevServer.httpServer.address();
|
|
131
|
+
const isAddressInfo = (x) => x === null || x === void 0 ? void 0 : x.address;
|
|
132
|
+
if (isAddressInfo(addressInfo)) {
|
|
133
|
+
(_a = userConfig.server) !== null && _a !== void 0 ? _a : (userConfig.server = {});
|
|
134
|
+
userConfig.server.port = addressInfo.port;
|
|
135
|
+
}
|
|
100
136
|
}
|
|
101
137
|
}
|
|
102
138
|
};
|
|
@@ -134,4 +170,4 @@ class VitePlugin extends plugin_base_1.PluginBase {
|
|
|
134
170
|
exports.default = VitePlugin;
|
|
135
171
|
exports.VitePlugin = VitePlugin;
|
|
136
172
|
VitePlugin.alreadyStarted = false;
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFrQztBQUVsQywwREFBNkI7QUFFN0IsNkRBQThFO0FBRTlFLGtEQUEwQjtBQUcxQixnREFBdUM7QUFHdkMsOERBQStDO0FBRS9DLE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFOUMsTUFBcUIsVUFBVyxTQUFRLHdCQUE0QjtJQUFwRTs7UUFHUyxTQUFJLEdBQUcsTUFBTSxDQUFDO1FBRWIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVVmLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBeUIsRUFBRSxDQUFDO1FBRTNDLFNBQUksR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBMEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDO1FBV0YsYUFBUSxHQUFHLEdBQXNCLEVBQUU7WUFDakMsT0FBTztnQkFDTCxVQUFVLEVBQUU7b0JBQ1YsSUFBQSxpQ0FBbUIsRUFBZSxLQUFLLElBQUksRUFBRTt3QkFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ25CLE1BQU0sa0JBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRTVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxDQUFDLEVBQUUsdUJBQXVCLENBQUM7aUJBQzVCO2dCQUNELFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNsQyxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQztvQkFDbkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO3dCQUNwQixJQUFJLEtBQUssQ0FBQyxTQUFTOzRCQUFFLE9BQU87d0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLGVBQVUsR0FBRyxLQUFLLElBQTBCLEVBQUU7WUFDNUMsSUFBSSxVQUFVLENBQUMsY0FBYztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM1QyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUVqQyxNQUFNLGtCQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRTVELE9BQU87Z0JBQ0wsS0FBSyxFQUFFO29CQUNMO3dCQUNFLEtBQUssRUFBRSxpREFBaUQ7d0JBQ3hELElBQUksRUFBRSxLQUFLLElBQUksRUFBRTs0QkFDZixNQUFNLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO3dCQUN4QyxDQUFDO3dCQUNELE9BQU8sRUFBRTs0QkFDUCxnQkFBZ0IsRUFBRSxJQUFJOzRCQUN0QixTQUFTLEVBQUUsSUFBSTt5QkFDaEI7cUJBQ0Y7b0JBQ0QsK0dBQStHO29CQUMvRzt3QkFDRSxLQUFLLEVBQUUsNkJBQTZCO3dCQUNwQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7NEJBQ2YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN6QixDQUFDO3dCQUNELE9BQU8sRUFBRTs0QkFDUCxTQUFTLEVBQUUsSUFBSTt5QkFDaEI7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYseURBQXlEO1FBQ3pELFVBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBaUIsRUFBRTtZQUM3QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsQ0FDRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUNqRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNuQixPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFOztvQkFDM0MsY0FBSTt5QkFDRCxLQUFLLENBQUM7d0JBQ0wsc0dBQXNHO3dCQUN0RyxVQUFVLEVBQUUsS0FBSzt3QkFDakIsR0FBRyxVQUFVO3dCQUNiLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsbUNBQW1DO2dDQUN6QyxXQUFXO29DQUNULE9BQU8sRUFBRSxDQUFDO29DQUVWLG1DQUFtQztnQ0FDckMsQ0FBQzs2QkFDRjs0QkFDRCxHQUFHLENBQUMsTUFBQSxVQUFVLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7eUJBQzlCO3FCQUNGLENBQUM7eUJBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ2YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUEsQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFFLEtBQUssQ0FBQSxLQUFLLFVBQVUsQ0FBQzt3QkFFakYsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUM1Qjt3QkFFRCxPQUFPLE1BQU0sQ0FBQztvQkFDaEIsQ0FBQyxDQUFDO3lCQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxJQUFtQixFQUFFO1lBQ3hDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sY0FBSSxDQUFDLEtBQUssQ0FBQztvQkFDZixVQUFVLEVBQUUsS0FBSztvQkFDakIsR0FBRyxVQUFVO2lCQUNkLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsNkJBQXdCLEdBQUcsS0FBSyxJQUFtQixFQUFFOztZQUNuRCxLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2dCQUN2RSxNQUFNLGFBQWEsR0FBRyxNQUFNLGNBQUksQ0FBQyxZQUFZLENBQUM7b0JBQzVDLFVBQVUsRUFBRSxLQUFLO29CQUNqQixHQUFHLFVBQVU7aUJBQ2QsQ0FBQyxDQUFDO2dCQUVILE1BQU0sYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVqQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7b0JBQzVCLHVGQUF1RjtvQkFDdkYsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDdkQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQW9CLEVBQUUsQ0FBQyxDQUFDLGFBQUQsQ0FBQyx1QkFBRCxDQUFDLENBQUUsT0FBTyxDQUFDO29CQUUvRCxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDOUIsTUFBQSxVQUFVLENBQUMsTUFBTSxvQ0FBakIsVUFBVSxDQUFDLE1BQU0sR0FBSyxFQUFFLEVBQUM7d0JBQ3pCLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7cUJBQzNDO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLENBQUMsT0FBOEMsRUFBRSxHQUFXLEVBQVEsRUFBRTtZQUNsRixDQUFDLENBQUMsNkJBQTZCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNuQixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ25DLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2pCO2dCQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUVuQixLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO29CQUMxQixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQ2hCO2dCQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2FBQ25CO1lBQ0QsSUFBSSxHQUFHO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLHFEQUFxRDtZQUNyRCwyQ0FBMkM7WUFDM0MsSUFBSSxPQUFPLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQTVKUyxjQUFjLENBQUMsR0FBVztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBWSxlQUFlOztRQUN6QixPQUFPLE9BQUMsSUFBSSxDQUFDLG9CQUFvQixvQ0FBekIsSUFBSSxDQUFDLG9CQUFvQixHQUFLLElBQUksb0JBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDO0lBQzVHLENBQUM7O0FBbENILDZCQXVMQztBQUVRLGdDQUFVO0FBeExGLHlCQUFjLEdBQUcsS0FBSyxDQUFDIn0=
|
package/index.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️
|
|
2
|
+
// This file was automatically generated by `tools/gen-ts-glue.ts`. Do not modify directly if you want to keep your changes.
|
|
3
|
+
export * from "./src/VitePlugin";
|
|
4
|
+
import defaultExport from "./src/VitePlugin";
|
|
5
|
+
export default defaultExport;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/plugin-vite",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "Vite plugin for Electron Forge, lets you use Vite directly in your tooling",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,15 +27,16 @@
|
|
|
27
27
|
"node": "^14.18.0 || >=16.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@electron-forge/core-utils": "6.
|
|
31
|
-
"@electron-forge/plugin-base": "6.
|
|
32
|
-
"@electron-forge/shared-types": "6.
|
|
33
|
-
"@electron-forge/web-multi-logger": "6.
|
|
30
|
+
"@electron-forge/core-utils": "6.2.0",
|
|
31
|
+
"@electron-forge/plugin-base": "6.2.0",
|
|
32
|
+
"@electron-forge/shared-types": "6.2.0",
|
|
33
|
+
"@electron-forge/web-multi-logger": "6.2.0",
|
|
34
34
|
"chalk": "^4.0.0",
|
|
35
35
|
"debug": "^4.3.1",
|
|
36
36
|
"vite": "^4.1.1"
|
|
37
37
|
},
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
|
-
}
|
|
40
|
+
},
|
|
41
|
+
"gitHead": "34752e82a8dcb0b8d04fcd3624bd0c03b7471b31"
|
|
41
42
|
}
|
package/src/Config.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { LibraryOptions } from 'vite';
|
|
2
|
+
|
|
3
|
+
export interface VitePluginBuildConfig {
|
|
4
|
+
/**
|
|
5
|
+
* Alias of `build.lib.entry` in `config`.
|
|
6
|
+
*/
|
|
7
|
+
entry?: LibraryOptions['entry'];
|
|
8
|
+
/**
|
|
9
|
+
* Vite config file path.
|
|
10
|
+
*/
|
|
11
|
+
config?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface VitePluginRendererConfig {
|
|
15
|
+
/**
|
|
16
|
+
* Human friendly name of your entry point
|
|
17
|
+
*/
|
|
18
|
+
name: string;
|
|
19
|
+
/**
|
|
20
|
+
* Vite config file path.
|
|
21
|
+
*/
|
|
22
|
+
config: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface VitePluginConfig {
|
|
26
|
+
/**
|
|
27
|
+
* Build anything such as Main process, Preload scripts and Worker process, etc.
|
|
28
|
+
*/
|
|
29
|
+
build: VitePluginBuildConfig[];
|
|
30
|
+
/**
|
|
31
|
+
* Renderer process.
|
|
32
|
+
*/
|
|
33
|
+
renderer: VitePluginRendererConfig[];
|
|
34
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
|
|
3
|
+
import debug from 'debug';
|
|
4
|
+
import { ConfigEnv, loadConfigFromFile, mergeConfig, UserConfig } from 'vite';
|
|
5
|
+
|
|
6
|
+
import { VitePluginConfig } from './Config';
|
|
7
|
+
import { externalBuiltins } from './util/plugins';
|
|
8
|
+
|
|
9
|
+
const d = debug('electron-forge:plugin:vite:viteconfig');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Vite allows zero-config runs, if the user does not provide `vite.config.js`,
|
|
13
|
+
* then the value of `LoadResult` will become `null`.
|
|
14
|
+
*/
|
|
15
|
+
export type LoadResult = Awaited<ReturnType<typeof loadConfigFromFile>>;
|
|
16
|
+
|
|
17
|
+
export default class ViteConfigGenerator {
|
|
18
|
+
private readonly baseDir: string;
|
|
19
|
+
|
|
20
|
+
private rendererConfigCache!: Promise<UserConfig>[];
|
|
21
|
+
|
|
22
|
+
constructor(private readonly pluginConfig: VitePluginConfig, private readonly projectDir: string, private readonly isProd: boolean) {
|
|
23
|
+
this.baseDir = path.join(projectDir, '.vite');
|
|
24
|
+
d('Config mode:', this.mode);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
resolveConfig(config: string, configEnv: Partial<ConfigEnv> = {}) {
|
|
28
|
+
// `command` is to be passed as an arguments when the user export a function in `vite.config.js`.
|
|
29
|
+
// @see - https://vitejs.dev/config/#conditional-config
|
|
30
|
+
configEnv.command ??= this.isProd ? 'build' : 'serve';
|
|
31
|
+
// `mode` affects `.env.[mode]` file loading.
|
|
32
|
+
configEnv.mode ??= this.mode;
|
|
33
|
+
return loadConfigFromFile(configEnv as ConfigEnv, config);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get mode(): string {
|
|
37
|
+
// Vite's `mode` can be passed in via command.
|
|
38
|
+
// Since we are currently using the JavaScript API, we are opinionated defining two default values for mode here.
|
|
39
|
+
// The `mode` set by the end user in `vite.config.js` has a higher priority.
|
|
40
|
+
return this.isProd ? 'production' : 'development';
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async getDefines(): Promise<Record<string, string>> {
|
|
44
|
+
const defines: Record<string, any> = {};
|
|
45
|
+
const rendererConfigs = await this.getRendererConfig();
|
|
46
|
+
for (const [index, userConfig] of rendererConfigs.entries()) {
|
|
47
|
+
const name = this.pluginConfig.renderer[index].name;
|
|
48
|
+
if (!name) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const NAME = name.toUpperCase().replace(/ /g, '_');
|
|
52
|
+
// `server.port` is set in `launchRendererDevServers` in `VitePlugin.ts`.
|
|
53
|
+
defines[`${NAME}_VITE_DEV_SERVER_URL`] = this.isProd ? undefined : JSON.stringify(`http://localhost:${userConfig?.server?.port}`);
|
|
54
|
+
defines[`${NAME}_VITE_NAME`] = JSON.stringify(name);
|
|
55
|
+
}
|
|
56
|
+
return defines;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async getBuildConfig(watch = false): Promise<UserConfig[]> {
|
|
60
|
+
if (!Array.isArray(this.pluginConfig.build)) {
|
|
61
|
+
throw new Error('"config.build" must be an Array');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const define = await this.getDefines();
|
|
65
|
+
const plugins = [externalBuiltins()];
|
|
66
|
+
const configs = this.pluginConfig.build
|
|
67
|
+
.filter(({ entry, config }) => entry || config)
|
|
68
|
+
.map<Promise<UserConfig>>(async ({ entry, config }) => {
|
|
69
|
+
const defaultConfig: UserConfig = {
|
|
70
|
+
// Ensure that each build config loads the .env file correctly.
|
|
71
|
+
mode: this.mode,
|
|
72
|
+
build: {
|
|
73
|
+
lib: entry
|
|
74
|
+
? {
|
|
75
|
+
entry,
|
|
76
|
+
// Electron can only support cjs.
|
|
77
|
+
formats: ['cjs'],
|
|
78
|
+
fileName: () => '[name].js',
|
|
79
|
+
}
|
|
80
|
+
: undefined,
|
|
81
|
+
// Prevent multiple builds from interfering with each other.
|
|
82
|
+
emptyOutDir: false,
|
|
83
|
+
// 🚧 Multiple builds may conflict.
|
|
84
|
+
outDir: path.join(this.baseDir, 'build'),
|
|
85
|
+
watch: watch ? {} : undefined,
|
|
86
|
+
},
|
|
87
|
+
clearScreen: false,
|
|
88
|
+
define,
|
|
89
|
+
plugins,
|
|
90
|
+
};
|
|
91
|
+
if (config) {
|
|
92
|
+
const loadResult = await this.resolveConfig(config);
|
|
93
|
+
return mergeConfig(defaultConfig, loadResult?.config ?? {});
|
|
94
|
+
}
|
|
95
|
+
return defaultConfig;
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
return await Promise.all(configs);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async getRendererConfig(): Promise<UserConfig[]> {
|
|
102
|
+
if (!Array.isArray(this.pluginConfig.renderer)) {
|
|
103
|
+
throw new Error('"config.renderer" must be an Array');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const configs = (this.rendererConfigCache ??= this.pluginConfig.renderer.map(async ({ name, config }) => {
|
|
107
|
+
const defaultConfig: UserConfig = {
|
|
108
|
+
// Ensure that each build config loads the .env file correctly.
|
|
109
|
+
mode: this.mode,
|
|
110
|
+
// Make sure that Electron can be loaded into the local file using `loadFile` after packaging.
|
|
111
|
+
base: './',
|
|
112
|
+
build: {
|
|
113
|
+
outDir: path.join(this.baseDir, 'renderer', name),
|
|
114
|
+
},
|
|
115
|
+
clearScreen: false,
|
|
116
|
+
};
|
|
117
|
+
const loadResult = (await this.resolveConfig(config)) ?? { path: '', config: {}, dependencies: [] };
|
|
118
|
+
return mergeConfig(defaultConfig, loadResult.config);
|
|
119
|
+
}));
|
|
120
|
+
|
|
121
|
+
return await Promise.all(configs);
|
|
122
|
+
}
|
|
123
|
+
}
|