@electron-forge/plugin-vite 8.0.0-alpha.4 → 8.0.0-alpha.5
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/dist/Config.js +1 -2
- package/dist/ViteConfig.d.ts +1 -1
- package/dist/ViteConfig.d.ts.map +1 -1
- package/dist/ViteConfig.js +15 -18
- package/dist/VitePlugin.d.ts +9 -3
- package/dist/VitePlugin.d.ts.map +1 -1
- package/dist/VitePlugin.js +392 -307
- package/dist/config/vite.base.config.js +10 -18
- package/dist/config/vite.main.config.js +9 -13
- package/dist/config/vite.preload.config.d.ts.map +1 -1
- package/dist/config/vite.preload.config.js +8 -12
- package/dist/config/vite.renderer.config.js +6 -10
- package/dist/subprocess-worker.d.ts +2 -0
- package/dist/subprocess-worker.d.ts.map +1 -0
- package/dist/subprocess-worker.js +33 -0
- package/forge-vite-env.d.ts +1 -1
- package/package.json +10 -9
- package/src/ViteConfig.ts +4 -4
- package/src/VitePlugin.ts +129 -6
- package/src/config/vite.main.config.ts +1 -1
- package/src/config/vite.preload.config.ts +5 -1
- package/src/config/vite.renderer.config.ts +1 -1
- package/src/subprocess-worker.ts +47 -0
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.pluginHotRestart = exports.pluginExposeRenderer = exports.getBuildDefine = exports.getDefineKeys = exports.getBuildConfig = exports.external = exports.builtins = void 0;
|
|
4
|
-
const node_module_1 = require("node:module");
|
|
5
|
-
exports.builtins = [
|
|
1
|
+
import { builtinModules } from 'node:module';
|
|
2
|
+
export const builtins = [
|
|
6
3
|
'electron',
|
|
7
4
|
'electron/common',
|
|
8
|
-
...
|
|
5
|
+
...builtinModules.map((m) => [m, `node:${m}`]).flat(),
|
|
9
6
|
];
|
|
10
|
-
|
|
7
|
+
export const external = [...builtins];
|
|
11
8
|
// Used for hot reload after preload scripts.
|
|
12
9
|
const viteDevServers = {};
|
|
13
10
|
const viteDevServerUrls = {};
|
|
14
|
-
function getBuildConfig(env) {
|
|
11
|
+
export function getBuildConfig(env) {
|
|
15
12
|
const { root, mode, command } = env;
|
|
16
13
|
return {
|
|
17
14
|
root,
|
|
@@ -27,8 +24,7 @@ function getBuildConfig(env) {
|
|
|
27
24
|
clearScreen: false,
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
function getDefineKeys(names) {
|
|
27
|
+
export function getDefineKeys(names) {
|
|
32
28
|
const define = {};
|
|
33
29
|
// change name from kebab case to upper snake case to agree with vite:define plugin
|
|
34
30
|
// this allows the VitePluginRendererConfig entries to contain names with dashes
|
|
@@ -41,8 +37,7 @@ function getDefineKeys(names) {
|
|
|
41
37
|
return { ...acc, [name]: keys };
|
|
42
38
|
}, define);
|
|
43
39
|
}
|
|
44
|
-
|
|
45
|
-
function getBuildDefine(env) {
|
|
40
|
+
export function getBuildDefine(env) {
|
|
46
41
|
const { command, forgeConfig } = env;
|
|
47
42
|
const names = forgeConfig.renderer
|
|
48
43
|
.filter(({ name }) => name != null)
|
|
@@ -60,8 +55,7 @@ function getBuildDefine(env) {
|
|
|
60
55
|
}, {});
|
|
61
56
|
return define;
|
|
62
57
|
}
|
|
63
|
-
|
|
64
|
-
function pluginExposeRenderer(name) {
|
|
58
|
+
export function pluginExposeRenderer(name) {
|
|
65
59
|
const { VITE_DEV_SERVER_URL } = getDefineKeys([name])[name];
|
|
66
60
|
return {
|
|
67
61
|
name: '@electron-forge/plugin-vite:expose-renderer',
|
|
@@ -77,8 +71,7 @@ function pluginExposeRenderer(name) {
|
|
|
77
71
|
},
|
|
78
72
|
};
|
|
79
73
|
}
|
|
80
|
-
|
|
81
|
-
function pluginHotRestart(command) {
|
|
74
|
+
export function pluginHotRestart(command) {
|
|
82
75
|
return {
|
|
83
76
|
name: '@electron-forge/plugin-vite:hot-restart',
|
|
84
77
|
closeBundle() {
|
|
@@ -97,5 +90,4 @@ function pluginHotRestart(command) {
|
|
|
97
90
|
},
|
|
98
91
|
};
|
|
99
92
|
}
|
|
100
|
-
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5iYXNlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5iYXNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkM7QUFLaEMsUUFBQSxRQUFRLEdBQUc7SUFDdEIsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixHQUFHLDRCQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7Q0FDdEQsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHLENBQUMsR0FBRyxnQkFBUSxDQUFDLENBQUM7QUFFdEMsNkNBQTZDO0FBQzdDLE1BQU0sY0FBYyxHQUFrQyxFQUFFLENBQUM7QUFDekQsTUFBTSxpQkFBaUIsR0FBMkIsRUFBRSxDQUFDO0FBRXJELFNBQWdCLGNBQWMsQ0FBQyxHQUF1QjtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFFcEMsT0FBTztRQUNMLElBQUk7UUFDSixJQUFJO1FBQ0osS0FBSyxFQUFFO1lBQ0wsNERBQTREO1lBQzVELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLG1DQUFtQztZQUNuQyxNQUFNLEVBQUUsYUFBYTtZQUNyQixLQUFLLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3RDLE1BQU0sRUFBRSxPQUFPLEtBQUssT0FBTztTQUM1QjtRQUNELFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7QUFDSixDQUFDO0FBaEJELHdDQWdCQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxLQUFlO0lBQzNDLE1BQU0sTUFBTSxHQUE4QyxFQUFFLENBQUM7SUFFN0QsbUZBQW1GO0lBQ25GLGdGQUFnRjtJQUVoRixPQUFPLEtB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
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5iYXNlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5iYXNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzdDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0NBQ3RELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBRXRDLDZDQUE2QztBQUM3QyxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0FBQ3pELE1BQU0saUJBQWlCLEdBQTJCLEVBQUUsQ0FBQztBQUVyRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQXVCO0lBQ3BELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUVwQyxPQUFPO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixLQUFLLEVBQUU7WUFDTCw0REFBNEQ7WUFDNUQsV0FBVyxFQUFFLEtBQUs7WUFDbEIsbUNBQW1DO1lBQ25DLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdEMsTUFBTSxFQUFFLE9BQU8sS0FBSyxPQUFPO1NBQzVCO1FBQ0QsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWU7SUFDM0MsTUFBTSxNQUFNLEdBQThDLEVBQUUsQ0FBQztJ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
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const vite_1 = require("vite");
|
|
5
|
-
const vite_base_config_1 = require("./vite.base.config");
|
|
6
|
-
function getConfig(forgeEnv, userConfig = {}) {
|
|
1
|
+
import { mergeConfig } from 'vite';
|
|
2
|
+
import { external, getBuildConfig, getBuildDefine, pluginHotRestart, } from './vite.base.config.js';
|
|
3
|
+
export function getConfig(forgeEnv, userConfig = {}) {
|
|
7
4
|
const { forgeConfigSelf } = forgeEnv;
|
|
8
|
-
const define =
|
|
5
|
+
const define = getBuildDefine(forgeEnv);
|
|
9
6
|
const config = {
|
|
10
7
|
build: {
|
|
11
8
|
copyPublicDir: false,
|
|
12
9
|
rollupOptions: {
|
|
13
|
-
external: [...
|
|
10
|
+
external: [...external, 'electron/main'],
|
|
14
11
|
},
|
|
15
12
|
},
|
|
16
|
-
plugins: [
|
|
13
|
+
plugins: [pluginHotRestart('restart')],
|
|
17
14
|
define,
|
|
18
15
|
resolve: {
|
|
19
16
|
// Load the Node.js entry.
|
|
@@ -21,7 +18,7 @@ function getConfig(forgeEnv, userConfig = {}) {
|
|
|
21
18
|
mainFields: ['module', 'jsnext:main', 'jsnext'],
|
|
22
19
|
},
|
|
23
20
|
};
|
|
24
|
-
const buildConfig =
|
|
21
|
+
const buildConfig = getBuildConfig(forgeEnv);
|
|
25
22
|
if (userConfig.build?.lib == null) {
|
|
26
23
|
config.build.lib = {
|
|
27
24
|
entry: forgeConfigSelf.entry,
|
|
@@ -29,7 +26,6 @@ function getConfig(forgeEnv, userConfig = {}) {
|
|
|
29
26
|
formats: ['cjs'],
|
|
30
27
|
};
|
|
31
28
|
}
|
|
32
|
-
return
|
|
29
|
+
return mergeConfig(mergeConfig(buildConfig, config), userConfig);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5tYWluLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5tYWluLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0U7QUFFcEUseURBSzRCO0FBRTVCLFNBQWdCLFNBQVMsQ0FDdkIsUUFBNEIsRUFDNUIsYUFBeUIsRUFBRTtJQUUzQixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsaUNBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBZTtRQUN6QixLQUFLLEVBQUU7WUFDTCxhQUFhLEVBQUUsS0FBSztZQUNwQixhQUFhLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLENBQUMsR0FBRywyQkFBUSxFQUFFLGVBQWUsQ0FBQzthQUN6QztTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxNQUFNO1FBQ04sT0FBTyxFQUFFO1lBQ1AsMEJBQTBCO1lBQzFCLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNwQixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQztTQUNoRDtLQUNGLENBQUM7SUFDRixNQUFNLFdBQVcsR0FBRyxJQUFBLGlDQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0MsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBTSxDQUFDLEdBQUcsR0FBRztZQUNsQixLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7WUFDNUIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVc7WUFDM0IsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFBLGtCQUFXLEVBQUMsSUFBQSxrQkFBVyxFQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBaENELDhCQWdDQyJ9
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5tYWluLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5tYWluLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBbUIsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUNMLFFBQVEsRUFDUixjQUFjLEVBQ2QsY0FBYyxFQUNkLGdCQUFnQixHQUNqQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLFFBQTRCLEVBQzVCLGFBQXlCLEVBQUU7SUFFM0IsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQWU7UUFDekIsS0FBSyxFQUFFO1lBQ0wsYUFBYSxFQUFFLEtBQUs7WUFDcEIsYUFBYSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLGVBQWUsQ0FBQzthQUN6QztTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsTUFBTTtRQUNOLE9BQU8sRUFBRTtZQUNQLDBCQUEwQjtZQUMxQixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDcEIsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUM7U0FDaEQ7S0FDRixDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLEtBQU0sQ0FBQyxHQUFHLEdBQUc7WUFDbEIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO1lBQzVCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXO1lBQzNCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkUsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.preload.config.d.ts","sourceRoot":"","sources":["../../src/config/vite.preload.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAe,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"vite.preload.config.d.ts","sourceRoot":"","sources":["../../src/config/vite.preload.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAe,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAQpE,wBAAgB,SAAS,CACvB,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAC5B,UAAU,GAAE,UAAe,GAC1B,UAAU,CAwBZ"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const vite_1 = require("vite");
|
|
5
|
-
const vite_base_config_1 = require("./vite.base.config");
|
|
6
|
-
function getConfig(forgeEnv, userConfig = {}) {
|
|
1
|
+
import { mergeConfig } from 'vite';
|
|
2
|
+
import { external, getBuildConfig, pluginHotRestart, } from './vite.base.config.js';
|
|
3
|
+
export function getConfig(forgeEnv, userConfig = {}) {
|
|
7
4
|
const { forgeConfigSelf } = forgeEnv;
|
|
8
5
|
const config = {
|
|
9
6
|
build: {
|
|
10
7
|
copyPublicDir: false,
|
|
11
8
|
rollupOptions: {
|
|
12
|
-
external: [...
|
|
9
|
+
external: [...external, 'electron/renderer'],
|
|
13
10
|
// Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
|
|
14
11
|
input: forgeConfigSelf.entry,
|
|
15
12
|
output: {
|
|
@@ -22,10 +19,9 @@ function getConfig(forgeEnv, userConfig = {}) {
|
|
|
22
19
|
},
|
|
23
20
|
},
|
|
24
21
|
},
|
|
25
|
-
plugins: [
|
|
22
|
+
plugins: [pluginHotRestart('reload')],
|
|
26
23
|
};
|
|
27
|
-
const buildConfig =
|
|
28
|
-
return
|
|
24
|
+
const buildConfig = getBuildConfig(forgeEnv);
|
|
25
|
+
return mergeConfig(mergeConfig(buildConfig, config), userConfig);
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5wcmVsb2FkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5wcmVsb2FkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0U7QUFFcEUseURBQWdGO0FBRWhGLFNBQWdCLFNBQVMsQ0FDdkIsUUFBNEIsRUFDNUIsYUFBeUIsRUFBRTtJQUUzQixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFlO1FBQ3pCLEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGFBQWEsRUFBRTtnQkFDYixRQUFRLEVBQUUsQ0FBQyxHQUFHLDJCQUFRLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzVDLDRHQUE0RztnQkFDNUcsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO2dCQUM1QixNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLEtBQUs7b0JBQ2IsaUNBQWlDO29CQUNqQyxvQkFBb0IsRUFBRSxJQUFJO29CQUMxQixjQUFjLEVBQUUsV0FBVztvQkFDM0IsY0FBYyxFQUFFLFdBQVc7b0JBQzNCLGNBQWMsRUFBRSxjQUFjO2lCQUMvQjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3RDLENBQUM7SUFDRixNQUFNLFdBQVcsR0FBRyxJQUFBLGlDQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0MsT0FBTyxJQUFBLGtCQUFXLEVBQUMsSUFBQSxrQkFBVyxFQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBM0JELDhCQTJCQyJ9
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5wcmVsb2FkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5wcmVsb2FkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBbUIsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUNMLFFBQVEsRUFDUixjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsUUFBNEIsRUFDNUIsYUFBeUIsRUFBRTtJQUUzQixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFlO1FBQ3pCLEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLGFBQWEsRUFBRTtnQkFDYixRQUFRLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQztnQkFDNUMsNEdBQTRHO2dCQUM1RyxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7Z0JBQzVCLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsS0FBSztvQkFDYixpQ0FBaUM7b0JBQ2pDLG9CQUFvQixFQUFFLElBQUk7b0JBQzFCLGNBQWMsRUFBRSxXQUFXO29CQUMzQixjQUFjLEVBQUUsV0FBVztvQkFDM0IsY0FBYyxFQUFFLGNBQWM7aUJBQy9CO2FBQ0Y7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3RDLENBQUM7SUFDRixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0MsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRSxDQUFDIn0=
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getConfig = void 0;
|
|
4
|
-
const vite_1 = require("vite");
|
|
5
|
-
const vite_base_config_1 = require("./vite.base.config");
|
|
1
|
+
import { mergeConfig } from 'vite';
|
|
2
|
+
import { pluginExposeRenderer } from './vite.base.config.js';
|
|
6
3
|
// https://vitejs.dev/config
|
|
7
|
-
function getConfig(forgeEnv, userConfig = {}) {
|
|
4
|
+
export function getConfig(forgeEnv, userConfig = {}) {
|
|
8
5
|
const { root, mode, forgeConfigSelf } = forgeEnv;
|
|
9
6
|
const name = forgeConfigSelf.name ?? '';
|
|
10
7
|
const config = {
|
|
@@ -15,13 +12,12 @@ function getConfig(forgeEnv, userConfig = {}) {
|
|
|
15
12
|
copyPublicDir: true,
|
|
16
13
|
outDir: `.vite/renderer/${name}`,
|
|
17
14
|
},
|
|
18
|
-
plugins: [
|
|
15
|
+
plugins: [pluginExposeRenderer(name)],
|
|
19
16
|
resolve: {
|
|
20
17
|
preserveSymlinks: true,
|
|
21
18
|
},
|
|
22
19
|
clearScreen: false,
|
|
23
20
|
};
|
|
24
|
-
return
|
|
21
|
+
return mergeConfig(config, userConfig);
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5yZW5kZXJlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3ZpdGUucmVuZGVyZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFvRTtBQUVwRSx5REFBMEQ7QUFFMUQsNEJBQTRCO0FBQzVCLFNBQWdCLFNBQVMsQ0FDdkIsUUFBK0IsRUFDL0IsYUFBeUIsRUFBRTtJQUUzQixNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFFeEMsTUFBTSxNQUFNLEdBQWU7UUFDekIsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxJQUFJO1lBQ25CLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxFQUFFO1NBQ2pDO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBQSx1Q0FBb0IsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLEVBQUU7WUFDUCxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztJQUVGLE9BQU8sSUFBQSxrQkFBVyxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBdkJELDhCQXVCQyJ9
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5yZW5kZXJlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3ZpdGUucmVuZGVyZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsV0FBVyxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsUUFBK0IsRUFDL0IsYUFBeUIsRUFBRTtJQUUzQixNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFFeEMsTUFBTSxNQUFNLEdBQWU7UUFDekIsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRSxJQUFJO1lBQ25CLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxFQUFFO1NBQ2pDO1FBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsT0FBTyxFQUFFO1lBQ1AsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QjtRQUNELFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDekMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subprocess-worker.d.ts","sourceRoot":"","sources":["../src/subprocess-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { build } from 'vite';
|
|
2
|
+
import ViteConfigGenerator from './ViteConfig.js';
|
|
3
|
+
const projectDir = process.env.FORGE_VITE_PROJECT_DIR;
|
|
4
|
+
const kind = process.env.FORGE_VITE_KIND;
|
|
5
|
+
const index = Number(process.env.FORGE_VITE_INDEX);
|
|
6
|
+
const rawConfig = process.env.FORGE_VITE_CONFIG;
|
|
7
|
+
if (!projectDir || !kind || !rawConfig || !Number.isInteger(index)) {
|
|
8
|
+
console.error('subprocess-worker: missing one of FORGE_VITE_PROJECT_DIR, FORGE_VITE_KIND, FORGE_VITE_INDEX, FORGE_VITE_CONFIG');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
// The full plugin config (both build[] and renderer[]) is needed because
|
|
12
|
+
// getBuildDefine() reads forgeConfig.renderer to generate ${NAME}_VITE_NAME
|
|
13
|
+
// defines when building main targets.
|
|
14
|
+
const pluginConfig = JSON.parse(rawConfig);
|
|
15
|
+
const generator = new ViteConfigGenerator(pluginConfig, projectDir, true);
|
|
16
|
+
let spec;
|
|
17
|
+
let target;
|
|
18
|
+
if (kind === 'build') {
|
|
19
|
+
spec = pluginConfig.build[index];
|
|
20
|
+
target = spec.target ?? 'main';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
spec = pluginConfig.renderer[index];
|
|
24
|
+
target = 'renderer';
|
|
25
|
+
}
|
|
26
|
+
const resolved = await generator.resolveConfig(spec, target);
|
|
27
|
+
await build({
|
|
28
|
+
configFile: false,
|
|
29
|
+
logLevel: 'error',
|
|
30
|
+
...resolved,
|
|
31
|
+
clearScreen: false,
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VicHJvY2Vzcy13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VicHJvY2Vzcy13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLG1CQUFtQixNQUFNLGlCQUFpQixDQUFDO0FBUWxELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7QUFDdEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUF1QyxDQUFDO0FBQ2pFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDbkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztBQUVoRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxLQUFLLENBQ1gsZ0hBQWdILENBQ2pILENBQUM7SUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsNEVBQTRFO0FBQzVFLHNDQUFzQztBQUN0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBcUIsQ0FBQztBQUUvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFMUUsSUFBSSxJQUFzRCxDQUFDO0FBQzNELElBQUksTUFBdUMsQ0FBQztBQUM1QyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztJQUNyQixJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUksSUFBOEIsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQzVELENBQUM7S0FBTSxDQUFDO0lBQ04sSUFBSSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsTUFBTSxHQUFHLFVBQVUsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUU3RCxNQUFNLEtBQUssQ0FBQztJQUNWLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLEdBQUcsUUFBUTtJQUNYLFdBQVcsRUFBRSxLQUFLO0NBQ25CLENBQUMsQ0FBQyJ9
|
package/forge-vite-env.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/plugin-vite",
|
|
3
|
-
"version": "8.0.0-alpha.
|
|
3
|
+
"version": "8.0.0-alpha.5",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "Vite plugin for Electron Forge, lets you use Vite directly in your tooling",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
@@ -9,27 +10,27 @@
|
|
|
9
10
|
},
|
|
10
11
|
"author": "caoxiemeihao",
|
|
11
12
|
"license": "MIT",
|
|
12
|
-
"
|
|
13
|
+
"exports": "./dist/VitePlugin.js",
|
|
13
14
|
"typings": "dist/VitePlugin.d.ts",
|
|
14
15
|
"dependencies": {
|
|
15
|
-
"@electron-forge/plugin-base": "8.0.0-alpha.
|
|
16
|
-
"@electron-forge/shared-types": "8.0.0-alpha.
|
|
16
|
+
"@electron-forge/plugin-base": "8.0.0-alpha.5",
|
|
17
|
+
"@electron-forge/shared-types": "8.0.0-alpha.5",
|
|
17
18
|
"chalk": "^4.0.0",
|
|
18
19
|
"debug": "^4.3.1",
|
|
19
20
|
"fs-extra": "^10.0.0",
|
|
20
21
|
"listr2": "^7.0.2"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
|
-
"@electron/packager": "^
|
|
24
|
+
"@electron/packager": "^19.0.1",
|
|
24
25
|
"@malept/cross-spawn-promise": "^2.0.0",
|
|
25
|
-
"@types/node": "^
|
|
26
|
-
"vite": "^
|
|
26
|
+
"@types/node": "^22.10.7",
|
|
27
|
+
"vite": "^7.2.4",
|
|
27
28
|
"vitest": "^4.0.14",
|
|
28
29
|
"which": "^2.0.2",
|
|
29
30
|
"xvfb-maybe": "^0.2.1"
|
|
30
31
|
},
|
|
31
32
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
33
|
+
"node": ">= 22.12.0"
|
|
33
34
|
},
|
|
34
35
|
"publishConfig": {
|
|
35
36
|
"access": "public"
|
|
@@ -39,5 +40,5 @@
|
|
|
39
40
|
"src",
|
|
40
41
|
"forge-vite-env.d.ts"
|
|
41
42
|
],
|
|
42
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "5ad3a256c5896637d0858d7713101bfabefb557e"
|
|
43
44
|
}
|
package/src/ViteConfig.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
2
|
import { loadConfigFromFile } from 'vite';
|
|
3
3
|
|
|
4
|
-
import { getConfig as getMainViteConfig } from './config/vite.main.config';
|
|
5
|
-
import { getConfig as getPreloadViteConfig } from './config/vite.preload.config';
|
|
6
|
-
import { getConfig as getRendererViteConfig } from './config/vite.renderer.config';
|
|
4
|
+
import { getConfig as getMainViteConfig } from './config/vite.main.config.js';
|
|
5
|
+
import { getConfig as getPreloadViteConfig } from './config/vite.preload.config.js';
|
|
6
|
+
import { getConfig as getRendererViteConfig } from './config/vite.renderer.config.js';
|
|
7
7
|
|
|
8
8
|
import type {
|
|
9
9
|
VitePluginBuildConfig,
|
|
10
10
|
VitePluginConfig,
|
|
11
11
|
VitePluginRendererConfig,
|
|
12
|
-
} from './Config';
|
|
12
|
+
} from './Config.js';
|
|
13
13
|
import type { ConfigEnv, UserConfig } from 'vite';
|
|
14
14
|
|
|
15
15
|
const d = debug('@electron-forge/plugin-vite:ViteConfig');
|
package/src/VitePlugin.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
process.env.VITE_CJS_IGNORE_WARNING = 'true';
|
|
3
|
-
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
4
2
|
import path from 'node:path';
|
|
5
3
|
|
|
6
4
|
import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base';
|
|
@@ -8,20 +6,82 @@ import chalk from 'chalk';
|
|
|
8
6
|
import debug from 'debug';
|
|
9
7
|
import fs from 'fs-extra';
|
|
10
8
|
import { Listr, PRESET_TIMER } from 'listr2';
|
|
11
|
-
import
|
|
9
|
+
import * as vite from 'vite';
|
|
12
10
|
|
|
13
|
-
import ViteConfigGenerator from './ViteConfig';
|
|
11
|
+
import ViteConfigGenerator from './ViteConfig.js';
|
|
14
12
|
|
|
15
|
-
import type { VitePluginConfig } from './Config';
|
|
13
|
+
import type { VitePluginConfig } from './Config.js';
|
|
16
14
|
import type {
|
|
17
15
|
ForgeListrTask,
|
|
18
16
|
ForgeMultiHookMap,
|
|
19
17
|
ResolvedForgeConfig,
|
|
20
18
|
} from '@electron-forge/shared-types';
|
|
21
19
|
import type { AddressInfo } from 'node:net';
|
|
20
|
+
import type { LibraryOptions } from 'vite';
|
|
22
21
|
|
|
23
22
|
const d = debug('electron-forge:plugin:vite');
|
|
24
23
|
|
|
24
|
+
const subprocessWorkerPath = path.resolve(
|
|
25
|
+
import.meta.dirname,
|
|
26
|
+
'subprocess-worker.js',
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
function spawnViteBuild(
|
|
30
|
+
pluginConfig: Pick<VitePluginConfig, 'build' | 'renderer'>,
|
|
31
|
+
kind: 'build' | 'renderer',
|
|
32
|
+
index: number,
|
|
33
|
+
projectDir: string,
|
|
34
|
+
) {
|
|
35
|
+
return new Promise<void>((resolve, reject) => {
|
|
36
|
+
const child = spawn(process.execPath, [subprocessWorkerPath], {
|
|
37
|
+
cwd: projectDir,
|
|
38
|
+
env: {
|
|
39
|
+
...process.env,
|
|
40
|
+
FORGE_VITE_PROJECT_DIR: projectDir,
|
|
41
|
+
FORGE_VITE_KIND: kind,
|
|
42
|
+
FORGE_VITE_INDEX: String(index),
|
|
43
|
+
FORGE_VITE_CONFIG: JSON.stringify(pluginConfig),
|
|
44
|
+
},
|
|
45
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
let stdout = '';
|
|
49
|
+
child.stdout.setEncoding('utf8');
|
|
50
|
+
child.stdout.on('data', (chunk) => {
|
|
51
|
+
stdout += chunk;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
let stderr = '';
|
|
55
|
+
child.stderr.setEncoding('utf8');
|
|
56
|
+
child.stderr.on('data', (chunk) => {
|
|
57
|
+
stderr += chunk;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
child.on('error', reject);
|
|
61
|
+
child.on('close', (code, signal) => {
|
|
62
|
+
if (code === 0) {
|
|
63
|
+
resolve();
|
|
64
|
+
} else {
|
|
65
|
+
const output = [stdout, stderr].filter(Boolean).join('\n');
|
|
66
|
+
const reason = signal
|
|
67
|
+
? `killed by signal ${signal}`
|
|
68
|
+
: `exited with code ${code}`;
|
|
69
|
+
reject(
|
|
70
|
+
new Error(
|
|
71
|
+
`Vite build subprocess ${reason}${output ? `:\n${output}` : ''}`,
|
|
72
|
+
),
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function entryToDisplay(entry: LibraryOptions['entry']): string {
|
|
80
|
+
if (typeof entry === 'string') return entry;
|
|
81
|
+
if (Array.isArray(entry)) return entry.join(' ');
|
|
82
|
+
return Object.keys(entry).join(' ');
|
|
83
|
+
}
|
|
84
|
+
|
|
25
85
|
export default class VitePlugin extends PluginBase<VitePluginConfig> {
|
|
26
86
|
private static alreadyStarted = false;
|
|
27
87
|
|
|
@@ -208,8 +268,47 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}.`);
|
|
|
208
268
|
});
|
|
209
269
|
};
|
|
210
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Serializable snapshot of the plugin config to pass to subprocess workers.
|
|
273
|
+
* We only include build[] and renderer[] — the worker needs the full renderer
|
|
274
|
+
* list for defines even when building a single main target.
|
|
275
|
+
*/
|
|
276
|
+
private get serializableConfig(): Pick<
|
|
277
|
+
VitePluginConfig,
|
|
278
|
+
'build' | 'renderer'
|
|
279
|
+
> {
|
|
280
|
+
return {
|
|
281
|
+
build: this.config.build,
|
|
282
|
+
renderer: this.config.renderer,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
211
286
|
// Main process, Preload scripts and Worker process, etc.
|
|
212
287
|
build = async (task?: ForgeListrTask<null>): Promise<Listr | void> => {
|
|
288
|
+
if (this.isProd) {
|
|
289
|
+
const targets = this.config.build
|
|
290
|
+
.map((spec, index) => ({ spec, index }))
|
|
291
|
+
.filter(({ spec }) => spec.config);
|
|
292
|
+
return task?.newListr(
|
|
293
|
+
targets.map(({ spec, index }) => ({
|
|
294
|
+
title: `Building ${chalk.green(entryToDisplay(spec.entry))}`,
|
|
295
|
+
task: async (_ctx, subtask) => {
|
|
296
|
+
await spawnViteBuild(
|
|
297
|
+
this.serializableConfig,
|
|
298
|
+
'build',
|
|
299
|
+
index,
|
|
300
|
+
this.projectDir,
|
|
301
|
+
);
|
|
302
|
+
subtask.title = `Built target ${chalk.dim(entryToDisplay(spec.entry))}`;
|
|
303
|
+
},
|
|
304
|
+
})),
|
|
305
|
+
{
|
|
306
|
+
concurrent: this.config.concurrent ?? true,
|
|
307
|
+
exitOnError: true,
|
|
308
|
+
},
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
|
|
213
312
|
const configs = await this.configGenerator.getBuildConfigs();
|
|
214
313
|
/**
|
|
215
314
|
* Checks if the result of the Vite build is a Rollup watcher.
|
|
@@ -339,6 +438,30 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}.`);
|
|
|
339
438
|
|
|
340
439
|
// Renderer process
|
|
341
440
|
buildRenderer = async (task?: ForgeListrTask<null>) => {
|
|
441
|
+
if (this.isProd) {
|
|
442
|
+
const targets = this.config.renderer
|
|
443
|
+
.map((spec, index) => ({ spec, index }))
|
|
444
|
+
.filter(({ spec }) => spec.config);
|
|
445
|
+
return task?.newListr(
|
|
446
|
+
targets.map(({ spec, index }) => ({
|
|
447
|
+
title: `Building ${chalk.green(spec.name)}`,
|
|
448
|
+
task: async (_ctx, subtask) => {
|
|
449
|
+
await spawnViteBuild(
|
|
450
|
+
this.serializableConfig,
|
|
451
|
+
'renderer',
|
|
452
|
+
index,
|
|
453
|
+
this.projectDir,
|
|
454
|
+
);
|
|
455
|
+
subtask.title = `Built target ${chalk.dim(spec.name)}`;
|
|
456
|
+
},
|
|
457
|
+
})),
|
|
458
|
+
{
|
|
459
|
+
concurrent: this.config.concurrent ?? true,
|
|
460
|
+
exitOnError: true,
|
|
461
|
+
},
|
|
462
|
+
);
|
|
463
|
+
}
|
|
464
|
+
|
|
342
465
|
const rendererConfigs = await this.configGenerator.getRendererConfig();
|
|
343
466
|
return task?.newListr(
|
|
344
467
|
rendererConfigs.map((userConfig) => ({
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
external,
|
|
5
|
+
getBuildConfig,
|
|
6
|
+
pluginHotRestart,
|
|
7
|
+
} from './vite.base.config.js';
|
|
4
8
|
|
|
5
9
|
export function getConfig(
|
|
6
10
|
forgeEnv: ConfigEnv<'build'>,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { build } from 'vite';
|
|
2
|
+
|
|
3
|
+
import ViteConfigGenerator from './ViteConfig.js';
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
VitePluginBuildConfig,
|
|
7
|
+
VitePluginConfig,
|
|
8
|
+
VitePluginRendererConfig,
|
|
9
|
+
} from './Config.js';
|
|
10
|
+
|
|
11
|
+
const projectDir = process.env.FORGE_VITE_PROJECT_DIR;
|
|
12
|
+
const kind = process.env.FORGE_VITE_KIND as 'build' | 'renderer';
|
|
13
|
+
const index = Number(process.env.FORGE_VITE_INDEX);
|
|
14
|
+
const rawConfig = process.env.FORGE_VITE_CONFIG;
|
|
15
|
+
|
|
16
|
+
if (!projectDir || !kind || !rawConfig || !Number.isInteger(index)) {
|
|
17
|
+
console.error(
|
|
18
|
+
'subprocess-worker: missing one of FORGE_VITE_PROJECT_DIR, FORGE_VITE_KIND, FORGE_VITE_INDEX, FORGE_VITE_CONFIG',
|
|
19
|
+
);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// The full plugin config (both build[] and renderer[]) is needed because
|
|
24
|
+
// getBuildDefine() reads forgeConfig.renderer to generate ${NAME}_VITE_NAME
|
|
25
|
+
// defines when building main targets.
|
|
26
|
+
const pluginConfig = JSON.parse(rawConfig) as VitePluginConfig;
|
|
27
|
+
|
|
28
|
+
const generator = new ViteConfigGenerator(pluginConfig, projectDir, true);
|
|
29
|
+
|
|
30
|
+
let spec: VitePluginBuildConfig | VitePluginRendererConfig;
|
|
31
|
+
let target: 'main' | 'preload' | 'renderer';
|
|
32
|
+
if (kind === 'build') {
|
|
33
|
+
spec = pluginConfig.build[index];
|
|
34
|
+
target = (spec as VitePluginBuildConfig).target ?? 'main';
|
|
35
|
+
} else {
|
|
36
|
+
spec = pluginConfig.renderer[index];
|
|
37
|
+
target = 'renderer';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const resolved = await generator.resolveConfig(spec, target);
|
|
41
|
+
|
|
42
|
+
await build({
|
|
43
|
+
configFile: false,
|
|
44
|
+
logLevel: 'error',
|
|
45
|
+
...resolved,
|
|
46
|
+
clearScreen: false,
|
|
47
|
+
});
|