@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 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
+ ```
@@ -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;IAmB7C,cAAc,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA0CpD,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAyBjD"}
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"}
@@ -41,11 +41,8 @@ class ViteConfigGenerator {
41
41
  continue;
42
42
  }
43
43
  const NAME = name.toUpperCase().replace(/ /g, '_');
44
- // There is no guarantee that `port` will always be available, because it may auto increment.
45
- // https://github.com/vitejs/vite/blob/v4.0.4/packages/vite/src/node/http.ts#L170
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, _b, _c;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBRTdCLGtEQUEwQjtBQUMxQiwrQkFBOEU7QUFHOUUsNENBQWtEO0FBRWxELE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFRekQsTUFBcUIsbUJBQW1CO0lBS3RDLFlBQTZCLFlBQThCLEVBQW1CLFVBQWtCLEVBQW1CLE1BQWU7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNoSSxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWMsRUFBRSxZQUFnQyxFQUFFOztRQUM5RCxpR0FBaUc7UUFDakcsdURBQXVEO1FBQ3ZELE1BQUEsU0FBUyxDQUFDLE9BQU8sb0NBQWpCLFNBQVMsQ0FBQyxPQUFPLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUM7UUFDdEQsNkNBQTZDO1FBQzdDLE1BQUEsU0FBUyxDQUFDLElBQUksb0NBQWQsU0FBUyxDQUFDLElBQUksR0FBSyxJQUFJLENBQUMsSUFBSSxFQUFDO1FBQzdCLE9BQU8sSUFBQSx5QkFBa0IsRUFBQyxTQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTiw4Q0FBOEM7UUFDOUMsaUhBQWlIO1FBQ2pILDRFQUE0RTtRQUM1RSxPQUFPLElBQUksQ0FBQyxNQUFNLENB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
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBRTdCLGtEQUEwQjtBQUMxQiwrQkFBOEU7QUFHOUUsNENBQWtEO0FBRWxELE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFRekQsTUFBcUIsbUJBQW1CO0lBS3RDLFlBQTZCLFlBQThCLEVBQW1CLFVBQWtCLEVBQW1CLE1BQWU7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNoSSxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWMsRUFBRSxZQUFnQyxFQUFFOztRQUM5RCxpR0FBaUc7UUFDakcsdURBQXVEO1FBQ3ZELE1BQUEsU0FBUyxDQUFDLE9BQU8sb0NBQWpCLFNBQVMsQ0FBQyxPQUFPLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUM7UUFDdEQsNkNBQTZDO1FBQzdDLE1BQUEsU0FBUyxDQUFDLElBQUksb0NBQWQsU0FBUyxDQUFDLElBQUksR0FBSyxJQUFJLENBQUMsSUFBSSxFQUFDO1FBQzdCLE9BQU8sSUFBQSx5QkFBa0IsRUFBQyxTQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTiw4Q0FBOEM7UUFDOUMsaUhBQWlIO1FBQ2pILDRFQUE0RTtRQUM1RSxPQUFPLElBQUksQ0FBQyxNQUFNLENB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
@@ -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,CAAqB;IAEpC,IAAI,QAAS,MAAM,KAAG,IAAI,CAMxB;IAEF,OAAO,CAAC,cAAc;IAKtB,OAAO,KAAK,eAAe,GAE1B;IAED,QAAQ,QAAO,iBAAiB,CAW9B;IAEF,UAAU,QAAa,QAAQ,WAAW,CAAC,CA8BzC;IAGF,KAAK,uBAA0B,QAAQ,IAAI,CAAC,CAY1C;IAGF,aAAa,QAAa,QAAQ,IAAI,CAAC,CAOrC;IAEF,wBAAwB,QAAa,QAAQ,IAAI,CAAC,CAchD;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"}
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"}
@@ -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: 'Compiling main process code',
54
+ title: 'Launching dev servers for renderer process code',
47
55
  task: async () => {
48
- await this.build(true);
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: 'Launching dev servers for renderer process code',
65
+ title: 'Compiling main process code',
56
66
  task: async () => {
57
- await this.launchRendererDevServers();
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
- for (const userConfig of await this.configGenerator.getBuildConfig(watch)) {
71
- const buildResult = await vite_1.default.build({
72
- // Avoid recursive builds caused by users configuring @electron-forge/plugin-vite in Vite config file.
73
- configFile: false,
74
- ...userConfig,
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
- if (Object.keys(buildResult).includes('close')) {
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
- this.servers.push(viteDevServer.httpServer);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFrQztBQUVsQywwREFBNkI7QUFFN0IsNkRBQThFO0FBRTlFLGtEQUEwQjtBQUcxQixnREFBdUM7QUFHdkMsOERBQStDO0FBRS9DLE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFOUMsTUFBcUIsVUFBVyxTQUFRLHdCQUE0QjtJQUFwRTs7UUFHUyxTQUFJLEdBQUcsTUFBTSxDQUFDO1FBRWIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVVmLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBRXBDLFNBQUksR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBMEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDO1FBV0YsYUFBUSxHQUFHLEdBQXNCLEVBQUU7WUFDakMsT0FBTztnQkFDTCxVQUFVLEVBQUU7b0JBQ1YsSUFBQSxpQ0FBbUIsRUFBZSxLQUFLLElBQUksRUFBRTt3QkFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ25CLE1BQU0sa0JBQUUs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
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.1.0",
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.1.0",
31
- "@electron-forge/plugin-base": "6.1.0",
32
- "@electron-forge/shared-types": "6.1.0",
33
- "@electron-forge/web-multi-logger": "6.1.0",
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
+ }