@electron-forge/plugin-vite 7.4.0 → 7.5.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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ## plugin-vite
2
2
 
3
+ _Note: This plugin is considered experimental and is under active development; we do not offer API stability guarantees as development continues. Minor versions may include breaking changes - see release notes for details on migration._
4
+
3
5
  This plugin makes it easy to set up standard vite tooling to compile both your main process code and your renderer process code, with built-in support for Hot Module Replacement (HMR) in the renderer process and support for multiple renderers.
4
6
 
5
7
  ```javascript
package/dist/Config.d.ts CHANGED
@@ -3,17 +3,22 @@ export interface VitePluginBuildConfig {
3
3
  /**
4
4
  * Alias of `build.lib.entry` in `config`.
5
5
  */
6
- entry?: LibraryOptions['entry'];
6
+ entry: LibraryOptions['entry'];
7
7
  /**
8
8
  * Vite config file path.
9
9
  */
10
10
  config: string;
11
+ /**
12
+ * The build target is main process or preload script.
13
+ * @defaultValue 'main'
14
+ */
15
+ target?: 'main' | 'preload';
11
16
  }
12
17
  export interface VitePluginRendererConfig {
13
18
  /**
14
19
  * Human friendly name of your entry point.
15
20
  */
16
- name?: string;
21
+ name: string;
17
22
  /**
18
23
  * Vite config file path.
19
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAK/B;;OAEG;IACH,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B;;OAEG;IACH,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAK/B;;OAEG;IACH,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B;;OAEG;IACH,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC"}
@@ -1,17 +1,15 @@
1
1
  import type { VitePluginBuildConfig, VitePluginConfig, VitePluginRendererConfig } from './Config';
2
- import type { ConfigEnv, UserConfig } from 'vite';
2
+ import type { UserConfig } from 'vite';
3
+ declare type Target = NonNullable<VitePluginBuildConfig['target']> | 'renderer';
3
4
  export default class ViteConfigGenerator {
4
5
  private readonly pluginConfig;
5
6
  private readonly projectDir;
6
7
  private readonly isProd;
7
8
  constructor(pluginConfig: VitePluginConfig, projectDir: string, isProd: boolean);
8
- resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, configEnv?: Partial<ConfigEnv>): Promise<{
9
- path: string;
10
- config: UserConfig;
11
- dependencies: string[];
12
- } | null>;
9
+ resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, target: Target): Promise<UserConfig>;
13
10
  get mode(): string;
14
11
  getBuildConfig(): Promise<UserConfig[]>;
15
12
  getRendererConfig(): Promise<UserConfig[]>;
16
13
  }
14
+ export {};
17
15
  //# sourceMappingURL=ViteConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViteConfig.d.ts","sourceRoot":"","sources":["../src/ViteConfig.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAElG,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAoB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA5F,YAAY,EAAE,gBAAgB,EAAmB,UAAU,EAAE,MAAM,EAAmB,MAAM,EAAE,OAAO;IAIlI,aAAa,CAAC,WAAW,EAAE,qBAAqB,GAAG,wBAAwB,EAAE,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM;;;;;IAiB/G,IAAI,IAAI,IAAI,MAAM,CAKjB;IAEK,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAavC,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAWjD"}
1
+ {"version":3,"file":"ViteConfig.d.ts","sourceRoot":"","sources":["../src/ViteConfig.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAClG,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlD,aAAK,MAAM,GAAG,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAoB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA5F,YAAY,EAAE,gBAAgB,EAAmB,UAAU,EAAE,MAAM,EAAmB,MAAM,EAAE,OAAO;IAI5H,aAAa,CAAC,WAAW,EAAE,qBAAqB,GAAG,wBAAwB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BvH,IAAI,IAAI,IAAI,MAAM,CAKjB;IAEK,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAavC,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAYjD"}
@@ -4,8 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const debug_1 = __importDefault(require("debug"));
7
- // eslint-disable-next-line node/no-unpublished-import
8
7
  const vite_1 = require("vite");
8
+ const vite_main_config_1 = require("./config/vite.main.config");
9
+ const vite_preload_config_1 = require("./config/vite.preload.config");
10
+ const vite_renderer_config_1 = require("./config/vite.renderer.config");
9
11
  const d = (0, debug_1.default)('@electron-forge/plugin-vite:ViteConfig');
10
12
  class ViteConfigGenerator {
11
13
  constructor(pluginConfig, projectDir, isProd) {
@@ -14,19 +16,29 @@ class ViteConfigGenerator {
14
16
  this.isProd = isProd;
15
17
  d('Config mode:', this.mode);
16
18
  }
17
- resolveConfig(buildConfig, configEnv = {}) {
18
- // @see - https://vitejs.dev/config/#conditional-config
19
- configEnv.command ??= this.isProd ? 'build' : 'serve';
20
- // `mode` affects `.env.[mode]` file load.
21
- configEnv.mode ??= this.mode;
22
- // Hack! Pass the forge runtime config to the vite config file in the template.
23
- Object.assign(configEnv, {
19
+ async resolveConfig(buildConfig, target) {
20
+ const configEnv = {
21
+ // @see - https://vitejs.dev/config/#conditional-config
22
+ command: this.isProd ? 'build' : 'serve',
23
+ // `mode` affects `.env.[mode]` file load.
24
+ mode: this.mode,
25
+ // Forge extension variables.
24
26
  root: this.projectDir,
25
27
  forgeConfig: this.pluginConfig,
26
28
  forgeConfigSelf: buildConfig,
27
- });
29
+ };
28
30
  // `configEnv` is to be passed as an arguments when the user export a function in `vite.config.js`.
29
- return (0, vite_1.loadConfigFromFile)(configEnv, buildConfig.config);
31
+ const userConfig = (await (0, vite_1.loadConfigFromFile)(configEnv, buildConfig.config))?.config ?? {};
32
+ switch (target) {
33
+ case 'main':
34
+ return (0, vite_1.mergeConfig)((0, vite_main_config_1.getConfig)(configEnv), userConfig);
35
+ case 'preload':
36
+ return (0, vite_1.mergeConfig)((0, vite_preload_config_1.getConfig)(configEnv), userConfig);
37
+ case 'renderer':
38
+ return (0, vite_1.mergeConfig)((0, vite_renderer_config_1.getConfig)(configEnv), userConfig);
39
+ default:
40
+ throw new Error(`Unknown target: ${target}, expected 'main', 'preload' or 'renderer'`);
41
+ }
30
42
  }
31
43
  get mode() {
32
44
  // Vite's `mode` can be passed in via command.
@@ -41,7 +53,7 @@ class ViteConfigGenerator {
41
53
  const configs = this.pluginConfig.build
42
54
  // Prevent load the default `vite.config.js` file.
43
55
  .filter(({ config }) => config)
44
- .map(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {});
56
+ .map((buildConfig) => this.resolveConfig(buildConfig, buildConfig.target ?? 'main'));
45
57
  return await Promise.all(configs);
46
58
  }
47
59
  async getRendererConfig() {
@@ -49,10 +61,11 @@ class ViteConfigGenerator {
49
61
  throw new Error('"config.renderer" must be an Array');
50
62
  }
51
63
  const configs = this.pluginConfig.renderer
64
+ // Prevent load the default `vite.config.js` file.
52
65
  .filter(({ config }) => config)
53
- .map(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {});
66
+ .map((buildConfig) => this.resolveConfig(buildConfig, 'renderer'));
54
67
  return await Promise.all(configs);
55
68
  }
56
69
  }
57
70
  exports.default = ViteConfigGenerator;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLHNEQUFzRDtBQUN0RCwrQkFBMEM7QUFNMUMsTUFBTSxDQUFDLEdBQUcsSUFBQSxlQUFLLEVBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUUxRCxNQUFxQixtQkFBbUI7SUFDdEMsWUFBNkIsWUFBOEIsRUFBbUIsVUFBa0IsRUFBbUIsTUFBZTtRQUFyRyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFBbUIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2hJLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhLENBQUMsV0FBNkQsRUFBRSxZQUFnQyxFQUFFO1FBQzdHLHVEQUF1RDtRQUN2RCxTQUFTLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3RELDBDQUEwQztRQUMxQyxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFN0IsK0VBQStFO1FBQy9FLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDOUIsZUFBZSxFQUFFLFdBQVc7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsbUdBQW1HO1FBQ25HLE9BQU8sSUFBQSx5QkFBa0IsRUFBQyxTQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sOENBQThDO1FBQzlDLGlIQUFpSDtRQUNqSCw0RUFBNEU7UUFDNUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUs7WUFDckMsa0RBQWtEO2FBQ2pELE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUM5QixHQUFHLENBQXNCLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3ZDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUM5QixHQUFHLENBQXNCLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQXJERCxzQ0FxREMifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLCtCQUF1RDtBQUV2RCxnRUFBMkU7QUFDM0Usc0VBQWlGO0FBQ2pGLHdFQUFtRjtBQUtuRixNQUFNLENBQUMsR0FBRyxJQUFBLGVBQUssRUFBQyx3Q0FBd0MsQ0FBQyxDQUFDO0FBSTFELE1BQXFCLG1CQUFtQjtJQUN0QyxZQUE2QixZQUE4QixFQUFtQixVQUFrQixFQUFtQixNQUFlO1FBQXJHLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUFtQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDaEksQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBNkQsRUFBRSxNQUFjO1FBQy9GLE1BQU0sU0FBUyxHQUFjO1lBQzNCLHVEQUF1RDtZQUN2RCxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQ3hDLDBDQUEwQztZQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFFZiw2QkFBNkI7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUM5QixlQUFlLEVBQUUsV0FBVztTQUM3QixDQUFDO1FBRUYsbUdBQW1HO1FBQ25HLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFBLHlCQUFrQixFQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzNGLFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBQSxrQkFBVyxFQUFDLElBQUEsNEJBQWlCLEVBQUMsU0FBK0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUEsa0JBQVcsRUFBQyxJQUFBLCtCQUFvQixFQUFDLFNBQStCLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4RixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFBLGtCQUFXLEVBQUMsSUFBQSxnQ0FBcUIsRUFBQyxTQUFrQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDNUY7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsTUFBTSw0Q0FBNEMsQ0FBQyxDQUFDO1NBQzFGO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLDhDQUE4QztRQUM5QyxpSEFBaUg7UUFDakgsNEVBQTRFO1FBQzVFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQ3JDLGtEQUFrRDthQUNqRCxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFdkYsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDeEMsa0RBQWtEO2FBQ2pELE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUM5QixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBaEVELHNDQWdFQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"VitePlugin.d.ts","sourceRoot":"","sources":["../src/VitePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAY9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAOxG,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;IAEK,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxC,OAAO,KAAK,eAAe,GAE1B;IAED,QAAQ,QAAO,iBAAiB,CAoB9B;IAEF,kBAAkB,gBAAuB,mBAAmB,KAAG,QAAQ,mBAAmB,CAAC,CAsBzF;IAEF,gBAAgB,iBAAwB,mBAAmB,aAAa,MAAM,KAAG,QAAQ,IAAI,CAAC,CAsB5F;IAEF,UAAU,QAAa,QAAQ,WAAW,CAAC,CA+BzC;IAGF,KAAK,QAAa,QAAQ,IAAI,CAAC,CA4B7B;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"}
1
+ {"version":3,"file":"VitePlugin.d.ts","sourceRoot":"","sources":["../src/VitePlugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAU9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAOxG,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;IAEK,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKxC,OAAO,KAAK,eAAe,GAE1B;IAED,QAAQ,QAAO,iBAAiB,CAoB9B;IAEF,kBAAkB,gBAAuB,mBAAmB,KAAG,QAAQ,mBAAmB,CAAC,CAwBzF;IAEF,gBAAgB,iBAAwB,mBAAmB,aAAa,MAAM,KAAG,QAAQ,IAAI,CAAC,CAc5F;IAEF,UAAU,QAAa,QAAQ,WAAW,CAAC,CA+BzC;IAGF,KAAK,QAAa,QAAQ,IAAI,CAAC,CA4B7B;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"}
@@ -10,9 +10,7 @@ const chalk_1 = __importDefault(require("chalk"));
10
10
  const debug_1 = __importDefault(require("debug"));
11
11
  const fs_extra_1 = __importDefault(require("fs-extra"));
12
12
  const listr2_1 = require("listr2");
13
- // eslint-disable-next-line node/no-unpublished-import
14
13
  const vite_1 = __importDefault(require("vite"));
15
- const package_1 = require("./util/package");
16
14
  const plugins_1 = require("./util/plugins");
17
15
  const ViteConfig_1 = __importDefault(require("./ViteConfig"));
18
16
  const d = (0, debug_1.default)('electron-forge:plugin:vite');
@@ -63,15 +61,15 @@ Your packaged app may be larger than expected if you dont ignore everything othe
63
61
  forgeConfig.packagerConfig.ignore = (file) => {
64
62
  if (!file)
65
63
  return false;
66
- // Always starts with `/`
64
+ // `file` always starts with `/`
67
65
  // @see - https://github.com/electron/packager/blob/v18.1.3/src/copy-filter.ts#L89-L93
66
+ // Collect the files built by Vite
68
67
  return !file.startsWith('/.vite');
69
68
  };
70
69
  return forgeConfig;
71
70
  };
72
71
  this.packageAfterCopy = async (_forgeConfig, buildPath) => {
73
72
  const pj = await fs_extra_1.default.readJson(node_path_1.default.resolve(this.projectDir, 'package.json'));
74
- const flatDependencies = await (0, package_1.getFlatDependencies)(this.projectDir);
75
73
  if (!pj.main?.includes('.vite/')) {
76
74
  throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the
77
75
  "main" entry point in "package.json" to be ".vite/*" (where the plugin outputs
@@ -80,13 +78,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
80
78
  if (pj.config) {
81
79
  delete pj.config.forge;
82
80
  }
83
- await fs_extra_1.default.writeJson(node_path_1.default.resolve(buildPath, 'package.json'), pj, {
84
- spaces: 2,
85
- });
86
- // Copy the dependencies in package.json
87
- for (const dep of flatDependencies) {
88
- await fs_extra_1.default.copy(dep.src, node_path_1.default.resolve(buildPath, dep.dest));
89
- }
81
+ await fs_extra_1.default.writeJson(node_path_1.default.resolve(buildPath, 'package.json'), pj, { spaces: 2 });
90
82
  };
91
83
  this.startLogic = async () => {
92
84
  if (VitePlugin.alreadyStarted)
@@ -207,4 +199,4 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
207
199
  exports.default = VitePlugin;
208
200
  exports.VitePlugin = VitePlugin;
209
201
  VitePlugin.alreadyStarted = false;
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUU3Qiw2REFBOEU7QUFDOUUsa0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQix3REFBMEI7QUFDMUIsbUNBQXNDO0FBQ3RDLHNEQUFzRDtBQUN0RCxnREFBdUM7QUFFdkMsNENBQXFEO0FBQ3JELDRDQUE2QztBQUM3Qyw4REFBK0M7QUFRL0MsTUFBTSxDQUFDLEdBQUcsSUFBQSxlQUFLLEVBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUU5QyxNQUFxQixVQUFXLFNBQVEsd0JBQTRCO0lBQXBFOztRQUdTLFNBQUksR0FBRyxNQUFNLENBQUM7UUFFYixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBVWYsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFFL0IsWUFBTyxHQUF5QixFQUFFLENBQUM7UUFFM0MsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUV6QixDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUEwQixFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUM7UUFXRixhQUFRLEdBQUcsR0FBc0IsRUFBRTtZQUNqQyxPQUFPO2dCQUNMLFVBQVUsRUFBRTtvQkFDVixJQUFBLGlDQUFtQixFQUFlLEtBQUss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
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUU3Qiw2REFBOEU7QUFDOUUsa0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQix3REFBMEI7QUFDMUIsbUNBQXNDO0FBQ3RDLGdEQUF1QztBQUV2Qyw0Q0FBNkM7QUFDN0MsOERBQStDO0FBUS9DLE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFOUMsTUFBcUIsVUFBVyxTQUFRLHdCQUE0QjtJQUFwRTs7UUFHUyxTQUFJLEdBQUcsTUFBTSxDQUFDO1FBRWIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVVmLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBeUIsRUFBRSxDQUFDO1FBRTNDLFNBQUksR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBMEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDO1FBV0YsYUFBUSxHQUFHLEdBQXNCLEVBQUU7WUFDakMsT0FBTztnQkFDTCxVQUFVLEVBQUU7b0JBQ1YsSUFBQSxpQ0FBbUIsRUFBZSxLQUFLLElBQUksRUFBRTt3QkFDM0MsSUFBSSxDQUFD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
@@ -0,0 +1,11 @@
1
+ import type { ConfigEnv, Plugin, UserConfig } from 'vite';
2
+ export declare const builtins: string[];
3
+ export declare const external: string[];
4
+ export declare function getBuildConfig(env: ConfigEnv<'build'>): UserConfig;
5
+ export declare function getDefineKeys(names: string[]): {
6
+ [name: string]: VitePluginRuntimeKeys;
7
+ };
8
+ export declare function getBuildDefine(env: ConfigEnv<'build'>): Record<string, any>;
9
+ export declare function pluginExposeRenderer(name: string): Plugin;
10
+ export declare function pluginHotRestart(command: 'reload' | 'restart'): Plugin;
11
+ //# sourceMappingURL=vite.base.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.base.config.d.ts","sourceRoot":"","sources":["../../src/config/vite.base.config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAiB,MAAM,MAAM,CAAC;AAEzE,eAAO,MAAM,QAAQ,UAAsE,CAAC;AAE5F,eAAO,MAAM,QAAQ,UAAgB,CAAC;AAMtC,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,UAAU,CAgBlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;;EAY5C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,uBAcrD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAiBtE"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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 = ['electron', ...node_module_1.builtinModules.map((m) => [m, `node:${m}`]).flat()];
6
+ exports.external = [...exports.builtins];
7
+ // Used for hot reload after preload scripts.
8
+ const viteDevServers = {};
9
+ const viteDevServerUrls = {};
10
+ function getBuildConfig(env) {
11
+ const { root, mode, command } = env;
12
+ return {
13
+ root,
14
+ mode,
15
+ build: {
16
+ // Prevent multiple builds from interfering with each other.
17
+ emptyOutDir: false,
18
+ // 🚧 Multiple builds may conflict.
19
+ outDir: '.vite/build',
20
+ watch: command === 'serve' ? {} : null,
21
+ minify: command === 'build',
22
+ },
23
+ clearScreen: false,
24
+ };
25
+ }
26
+ exports.getBuildConfig = getBuildConfig;
27
+ function getDefineKeys(names) {
28
+ const define = {};
29
+ return names.reduce((acc, name) => {
30
+ const NAME = name.toUpperCase();
31
+ const keys = {
32
+ VITE_DEV_SERVER_URL: `${NAME}_VITE_DEV_SERVER_URL`,
33
+ VITE_NAME: `${NAME}_VITE_NAME`,
34
+ };
35
+ return { ...acc, [name]: keys };
36
+ }, define);
37
+ }
38
+ exports.getDefineKeys = getDefineKeys;
39
+ function getBuildDefine(env) {
40
+ const { command, forgeConfig } = env;
41
+ const names = forgeConfig.renderer.filter(({ name }) => name != null).map(({ name }) => name);
42
+ const defineKeys = getDefineKeys(names);
43
+ const define = Object.entries(defineKeys).reduce((acc, [name, keys]) => {
44
+ const { VITE_DEV_SERVER_URL, VITE_NAME } = keys;
45
+ const def = {
46
+ [VITE_DEV_SERVER_URL]: command === 'serve' ? JSON.stringify(viteDevServerUrls[VITE_DEV_SERVER_URL]) : undefined,
47
+ [VITE_NAME]: JSON.stringify(name),
48
+ };
49
+ return { ...acc, ...def };
50
+ }, {});
51
+ return define;
52
+ }
53
+ exports.getBuildDefine = getBuildDefine;
54
+ function pluginExposeRenderer(name) {
55
+ const { VITE_DEV_SERVER_URL } = getDefineKeys([name])[name];
56
+ return {
57
+ name: '@electron-forge/plugin-vite:expose-renderer',
58
+ configureServer(server) {
59
+ // Expose server for preload scripts hot reload.
60
+ viteDevServers[name] = server;
61
+ server.httpServer?.once('listening', () => {
62
+ const addressInfo = server.httpServer?.address();
63
+ // Expose env constant for main process use.
64
+ viteDevServerUrls[VITE_DEV_SERVER_URL] = `http://localhost:${addressInfo?.port}`;
65
+ });
66
+ },
67
+ };
68
+ }
69
+ exports.pluginExposeRenderer = pluginExposeRenderer;
70
+ function pluginHotRestart(command) {
71
+ return {
72
+ name: '@electron-forge/plugin-vite:hot-restart',
73
+ closeBundle() {
74
+ if (command === 'reload') {
75
+ for (const server of Object.values(viteDevServers)) {
76
+ // Preload scripts hot reload.
77
+ server.ws.send({ type: 'full-reload' });
78
+ }
79
+ }
80
+ else if (command === 'restart') {
81
+ // Main process hot restart.
82
+ // https://github.com/electron/forge/blob/v7.2.0/packages/api/core/src/api/start.ts#L216-L223
83
+ // TODO: blocked in #3380
84
+ // process.stdin.emit('data', 'rs');
85
+ }
86
+ },
87
+ };
88
+ }
89
+ exports.pluginHotRestart = pluginHotRestart;
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5iYXNlLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5iYXNlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkM7QUFLaEMsUUFBQSxRQUFRLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyw0QkFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUUvRSxRQUFBLFFBQVEsR0FBRyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxDQUFDO0FBRXRDLDZDQUE2QztBQUM3QyxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0FBQ3pELE1BQU0saUJBQWlCLEdBQTJCLEVBQUUsQ0FBQztBQUVyRCxTQUFnQixjQUFjLENBQUMsR0FBdUI7SUFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBRXBDLE9BQU87UUFDTCxJQUFJO1FBQ0osSUFBSTtRQUNKLEtBQUssRUFBRTtZQUNMLDREQUE0RDtZQUM1RCxXQUFXLEVBQUUsS0FBSztZQUNsQixtQ0FBbUM7WUFDbkMsTUFBTSxFQUFFLGFBQWE7WUFDckIsS0FBSyxFQUFFLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN0QyxNQUFNLEVBQUUsT0FBTyxLQUFLLE9BQU87U0FDNUI7UUFDRCxXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQWhCRCx3Q0FnQkM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBZTtJQUMzQyxNQUFNLE1BQU0sR0FBOEMsRUFBRSxDQUFDO0lBRTdELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVB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
@@ -0,0 +1,3 @@
1
+ import { type ConfigEnv, type UserConfig } from 'vite';
2
+ export declare function getConfig(forgeEnv: ConfigEnv<'build'>): UserConfig;
3
+ //# sourceMappingURL=vite.main.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.main.config.d.ts","sourceRoot":"","sources":["../../src/config/vite.main.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAe,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAIpE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,UAAU,CAwBlE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfig = void 0;
4
+ const vite_1 = require("vite");
5
+ const vite_base_config_1 = require("./vite.base.config");
6
+ function getConfig(forgeEnv) {
7
+ const { forgeConfigSelf } = forgeEnv;
8
+ const define = (0, vite_base_config_1.getBuildDefine)(forgeEnv);
9
+ const config = {
10
+ build: {
11
+ lib: {
12
+ entry: forgeConfigSelf.entry,
13
+ fileName: () => '[name].js',
14
+ formats: ['cjs'],
15
+ },
16
+ rollupOptions: {
17
+ external: vite_base_config_1.external,
18
+ },
19
+ },
20
+ plugins: [(0, vite_base_config_1.pluginHotRestart)('restart')],
21
+ define,
22
+ resolve: {
23
+ // Load the Node.js entry.
24
+ conditions: ['node'],
25
+ mainFields: ['module', 'jsnext:main', 'jsnext'],
26
+ },
27
+ };
28
+ return (0, vite_1.mergeConfig)((0, vite_base_config_1.getBuildConfig)(forgeEnv), config);
29
+ }
30
+ exports.getConfig = getConfig;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5tYWluLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5tYWluLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0U7QUFFcEUseURBQWdHO0FBRWhHLFNBQWdCLFNBQVMsQ0FBQyxRQUE0QjtJQUNwRCxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsaUNBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBZTtRQUN6QixLQUFLLEVBQUU7WUFDTCxHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO2dCQUM1QixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVztnQkFDM0IsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2pCO1lBQ0QsYUFBYSxFQUFFO2dCQUNiLFFBQVEsRUFBUiwyQkFBUTthQUNUO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU07UUFDTixPQUFPLEVBQUU7WUFDUCwwQkFBMEI7WUFDMUIsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1NBQ2hEO0tBQ0YsQ0FBQztJQUVGLE9BQU8sSUFBQSxrQkFBVyxFQUFDLElBQUEsaUNBQWMsRUFBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBeEJELDhCQXdCQyJ9
@@ -0,0 +1,3 @@
1
+ import { type ConfigEnv, type UserConfig } from 'vite';
2
+ export declare function getConfig(forgeEnv: ConfigEnv<'build'>): UserConfig;
3
+ //# sourceMappingURL=vite.preload.config.d.ts.map
@@ -0,0 +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;AAIpE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,UAAU,CAsBlE"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfig = void 0;
4
+ const vite_1 = require("vite");
5
+ const vite_base_config_1 = require("./vite.base.config");
6
+ function getConfig(forgeEnv) {
7
+ const { forgeConfigSelf } = forgeEnv;
8
+ const config = {
9
+ build: {
10
+ rollupOptions: {
11
+ external: vite_base_config_1.external,
12
+ // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
13
+ input: forgeConfigSelf.entry,
14
+ output: {
15
+ format: 'cjs',
16
+ // It should not be split chunks.
17
+ inlineDynamicImports: true,
18
+ entryFileNames: '[name].js',
19
+ chunkFileNames: '[name].js',
20
+ assetFileNames: '[name].[ext]',
21
+ },
22
+ },
23
+ },
24
+ plugins: [(0, vite_base_config_1.pluginHotRestart)('reload')],
25
+ };
26
+ return (0, vite_1.mergeConfig)((0, vite_base_config_1.getBuildConfig)(forgeEnv), config);
27
+ }
28
+ exports.getConfig = getConfig;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5wcmVsb2FkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdml0ZS5wcmVsb2FkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBb0U7QUFFcEUseURBQWdGO0FBRWhGLFNBQWdCLFNBQVMsQ0FBQyxRQUE0QjtJQUNwRCxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFlO1FBQ3pCLEtBQUssRUFBRTtZQUNMLGFBQWEsRUFBRTtnQkFDYixRQUFRLEVBQVIsMkJBQVE7Z0JBQ1IsNEdBQTRHO2dCQUM1RyxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7Z0JBQzVCLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsS0FBSztvQkFDYixpQ0FBaUM7b0JBQ2pDLG9CQUFvQixFQUFFLElBQUk7b0JBQzFCLGNBQWMsRUFBRSxXQUFXO29CQUMzQixjQUFjLEVBQUUsV0FBVztvQkFDM0IsY0FBYyxFQUFFLGNBQWM7aUJBQy9CO2FBQ0Y7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUM7S0FDdEMsQ0FBQztJQUVGLE9BQU8sSUFBQSxrQkFBVyxFQUFDLElBQUEsaUNBQWMsRUFBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBdEJELDhCQXNCQyJ9
@@ -0,0 +1,3 @@
1
+ import { type ConfigEnv, type UserConfig } from 'vite';
2
+ export declare function getConfig(forgeEnv: ConfigEnv<'renderer'>): UserConfig;
3
+ //# sourceMappingURL=vite.renderer.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.renderer.config.d.ts","sourceRoot":"","sources":["../../src/config/vite.renderer.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAKvD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,cAiBxD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfig = void 0;
4
+ const vite_base_config_1 = require("./vite.base.config");
5
+ // https://vitejs.dev/config
6
+ function getConfig(forgeEnv) {
7
+ const { root, mode, forgeConfigSelf } = forgeEnv;
8
+ const name = forgeConfigSelf.name ?? '';
9
+ return {
10
+ root,
11
+ mode,
12
+ base: './',
13
+ build: {
14
+ outDir: `.vite/renderer/${name}`,
15
+ },
16
+ plugins: [(0, vite_base_config_1.pluginExposeRenderer)(name)],
17
+ resolve: {
18
+ preserveSymlinks: true,
19
+ },
20
+ clearScreen: false,
21
+ };
22
+ }
23
+ exports.getConfig = getConfig;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5yZW5kZXJlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3ZpdGUucmVuZGVyZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHlEQUEwRDtBQUUxRCw0QkFBNEI7QUFDNUIsU0FBZ0IsU0FBUyxDQUFDLFFBQStCO0lBQ3ZELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUNqRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUV4QyxPQUFPO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxFQUFFO1NBQ2pDO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBQSx1Q0FBb0IsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLEVBQUU7WUFDUCxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsV0FBVyxFQUFFLEtBQUs7S0FDTCxDQUFDO0FBQ2xCLENBQUM7QUFqQkQsOEJBaUJDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/util/plugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,eAO/C"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/util/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,eAO/C"}
@@ -10,4 +10,4 @@ function onBuildDone(callback) {
10
10
  };
11
11
  }
12
12
  exports.onBuildDone = onBuildDone;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsU0FBZ0IsV0FBVyxDQUFDLFFBQW9CO0lBQzlDLE9BQU87UUFDTCxJQUFJLEVBQUUsd0NBQXdDO1FBQzlDLFdBQVc7WUFDVCxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUM7S0FDUSxDQUFDO0FBQ2QsQ0FBQztBQVBELGtDQU9DIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLFFBQW9CO0lBQzlDLE9BQU87UUFDTCxJQUFJLEVBQUUsd0NBQXdDO1FBQzlDLFdBQVc7WUFDVCxRQUFRLEVBQUUsQ0FBQztRQUNiLENBQUM7S0FDUSxDQUFDO0FBQ2QsQ0FBQztBQVBELGtDQU9DIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electron-forge/plugin-vite",
3
- "version": "7.4.0",
3
+ "version": "7.5.0",
4
4
  "description": "Vite plugin for Electron Forge, lets you use Vite directly in your tooling",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,17 +15,17 @@
15
15
  "test": "xvfb-maybe mocha --config ../../../.mocharc.js test/**/*_spec.ts test/*_spec.ts"
16
16
  },
17
17
  "dependencies": {
18
- "@electron-forge/core-utils": "7.4.0",
19
- "@electron-forge/plugin-base": "7.4.0",
20
- "@electron-forge/shared-types": "7.4.0",
21
- "@electron-forge/web-multi-logger": "7.4.0",
18
+ "@electron-forge/core-utils": "7.5.0",
19
+ "@electron-forge/plugin-base": "7.5.0",
20
+ "@electron-forge/shared-types": "7.5.0",
21
+ "@electron-forge/web-multi-logger": "7.5.0",
22
22
  "chalk": "^4.0.0",
23
23
  "debug": "^4.3.1",
24
24
  "fs-extra": "^10.0.0",
25
25
  "listr2": "^7.0.2"
26
26
  },
27
27
  "devDependencies": {
28
- "@electron/packager": "^18.3.1",
28
+ "@electron/packager": "^18.3.5",
29
29
  "@malept/cross-spawn-promise": "^2.0.0",
30
30
  "@types/node": "^18.0.3",
31
31
  "chai": "^4.3.3",
@@ -44,5 +44,5 @@
44
44
  "dist",
45
45
  "src"
46
46
  ],
47
- "gitHead": "d3d47b2bc53be13609b5ff4d858275ce74bff819"
47
+ "gitHead": "5941a9a067c8af0daee0aab01c44a0040a9bdea0"
48
48
  }
package/src/Config.ts CHANGED
@@ -1,22 +1,26 @@
1
- // eslint-disable-next-line node/no-unpublished-import
2
1
  import type { LibraryOptions } from 'vite';
3
2
 
4
3
  export interface VitePluginBuildConfig {
5
4
  /**
6
5
  * Alias of `build.lib.entry` in `config`.
7
6
  */
8
- entry?: LibraryOptions['entry'];
7
+ entry: LibraryOptions['entry'];
9
8
  /**
10
9
  * Vite config file path.
11
10
  */
12
11
  config: string;
12
+ /**
13
+ * The build target is main process or preload script.
14
+ * @defaultValue 'main'
15
+ */
16
+ target?: 'main' | 'preload';
13
17
  }
14
18
 
15
19
  export interface VitePluginRendererConfig {
16
20
  /**
17
21
  * Human friendly name of your entry point.
18
22
  */
19
- name?: string;
23
+ name: string;
20
24
  /**
21
25
  * Vite config file path.
22
26
  */
package/src/ViteConfig.ts CHANGED
@@ -1,33 +1,47 @@
1
1
  import debug from 'debug';
2
- // eslint-disable-next-line node/no-unpublished-import
3
- import { loadConfigFromFile } from 'vite';
2
+ import { loadConfigFromFile, mergeConfig } from 'vite';
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
7
 
5
8
  import type { VitePluginBuildConfig, VitePluginConfig, VitePluginRendererConfig } from './Config';
6
- // eslint-disable-next-line node/no-unpublished-import
7
9
  import type { ConfigEnv, UserConfig } from 'vite';
8
10
 
9
11
  const d = debug('@electron-forge/plugin-vite:ViteConfig');
10
12
 
13
+ type Target = NonNullable<VitePluginBuildConfig['target']> | 'renderer';
14
+
11
15
  export default class ViteConfigGenerator {
12
16
  constructor(private readonly pluginConfig: VitePluginConfig, private readonly projectDir: string, private readonly isProd: boolean) {
13
17
  d('Config mode:', this.mode);
14
18
  }
15
19
 
16
- resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, configEnv: Partial<ConfigEnv> = {}) {
17
- // @see - https://vitejs.dev/config/#conditional-config
18
- configEnv.command ??= this.isProd ? 'build' : 'serve';
19
- // `mode` affects `.env.[mode]` file load.
20
- configEnv.mode ??= this.mode;
20
+ async resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, target: Target): Promise<UserConfig> {
21
+ const configEnv: ConfigEnv = {
22
+ // @see - https://vitejs.dev/config/#conditional-config
23
+ command: this.isProd ? 'build' : 'serve',
24
+ // `mode` affects `.env.[mode]` file load.
25
+ mode: this.mode,
21
26
 
22
- // Hack! Pass the forge runtime config to the vite config file in the template.
23
- Object.assign(configEnv, {
27
+ // Forge extension variables.
24
28
  root: this.projectDir,
25
29
  forgeConfig: this.pluginConfig,
26
30
  forgeConfigSelf: buildConfig,
27
- });
31
+ };
28
32
 
29
33
  // `configEnv` is to be passed as an arguments when the user export a function in `vite.config.js`.
30
- return loadConfigFromFile(configEnv as ConfigEnv, buildConfig.config);
34
+ const userConfig = (await loadConfigFromFile(configEnv, buildConfig.config))?.config ?? {};
35
+ switch (target) {
36
+ case 'main':
37
+ return mergeConfig(getMainViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
38
+ case 'preload':
39
+ return mergeConfig(getPreloadViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
40
+ case 'renderer':
41
+ return mergeConfig(getRendererViteConfig(configEnv as ConfigEnv<'renderer'>), userConfig);
42
+ default:
43
+ throw new Error(`Unknown target: ${target}, expected 'main', 'preload' or 'renderer'`);
44
+ }
31
45
  }
32
46
 
33
47
  get mode(): string {
@@ -45,7 +59,7 @@ export default class ViteConfigGenerator {
45
59
  const configs = this.pluginConfig.build
46
60
  // Prevent load the default `vite.config.js` file.
47
61
  .filter(({ config }) => config)
48
- .map<Promise<UserConfig>>(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {});
62
+ .map((buildConfig) => this.resolveConfig(buildConfig, buildConfig.target ?? 'main'));
49
63
 
50
64
  return await Promise.all(configs);
51
65
  }
@@ -56,8 +70,9 @@ export default class ViteConfigGenerator {
56
70
  }
57
71
 
58
72
  const configs = this.pluginConfig.renderer
73
+ // Prevent load the default `vite.config.js` file.
59
74
  .filter(({ config }) => config)
60
- .map<Promise<UserConfig>>(async (buildConfig) => (await this.resolveConfig(buildConfig))?.config ?? {});
75
+ .map((buildConfig) => this.resolveConfig(buildConfig, 'renderer'));
61
76
 
62
77
  return await Promise.all(configs);
63
78
  }
package/src/VitePlugin.ts CHANGED
@@ -5,10 +5,8 @@ import chalk from 'chalk';
5
5
  import debug from 'debug';
6
6
  import fs from 'fs-extra';
7
7
  import { PRESET_TIMER } from 'listr2';
8
- // eslint-disable-next-line node/no-unpublished-import
9
8
  import { default as vite } from 'vite';
10
9
 
11
- import { getFlatDependencies } from './util/package';
12
10
  import { onBuildDone } from './util/plugins';
13
11
  import ViteConfigGenerator from './ViteConfig';
14
12
 
@@ -95,8 +93,10 @@ Your packaged app may be larger than expected if you dont ignore everything othe
95
93
  forgeConfig.packagerConfig.ignore = (file: string) => {
96
94
  if (!file) return false;
97
95
 
98
- // Always starts with `/`
96
+ // `file` always starts with `/`
99
97
  // @see - https://github.com/electron/packager/blob/v18.1.3/src/copy-filter.ts#L89-L93
98
+
99
+ // Collect the files built by Vite
100
100
  return !file.startsWith('/.vite');
101
101
  };
102
102
  return forgeConfig;
@@ -104,7 +104,6 @@ Your packaged app may be larger than expected if you dont ignore everything othe
104
104
 
105
105
  packageAfterCopy = async (_forgeConfig: ResolvedForgeConfig, buildPath: string): Promise<void> => {
106
106
  const pj = await fs.readJson(path.resolve(this.projectDir, 'package.json'));
107
- const flatDependencies = await getFlatDependencies(this.projectDir);
108
107
 
109
108
  if (!pj.main?.includes('.vite/')) {
110
109
  throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the
@@ -116,14 +115,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
116
115
  delete pj.config.forge;
117
116
  }
118
117
 
119
- await fs.writeJson(path.resolve(buildPath, 'package.json'), pj, {
120
- spaces: 2,
121
- });
122
-
123
- // Copy the dependencies in package.json
124
- for (const dep of flatDependencies) {
125
- await fs.copy(dep.src, path.resolve(buildPath, dep.dest));
126
- }
118
+ await fs.writeJson(path.resolve(buildPath, 'package.json'), pj, { spaces: 2 });
127
119
  };
128
120
 
129
121
  startLogic = async (): Promise<StartResult> => {
@@ -0,0 +1,97 @@
1
+ import { builtinModules } from 'node:module';
2
+
3
+ import type { AddressInfo } from 'node:net';
4
+ import type { ConfigEnv, Plugin, UserConfig, ViteDevServer } from 'vite';
5
+
6
+ export const builtins = ['electron', ...builtinModules.map((m) => [m, `node:${m}`]).flat()];
7
+
8
+ export const external = [...builtins];
9
+
10
+ // Used for hot reload after preload scripts.
11
+ const viteDevServers: Record<string, ViteDevServer> = {};
12
+ const viteDevServerUrls: Record<string, string> = {};
13
+
14
+ export function getBuildConfig(env: ConfigEnv<'build'>): UserConfig {
15
+ const { root, mode, command } = env;
16
+
17
+ return {
18
+ root,
19
+ mode,
20
+ build: {
21
+ // Prevent multiple builds from interfering with each other.
22
+ emptyOutDir: false,
23
+ // 🚧 Multiple builds may conflict.
24
+ outDir: '.vite/build',
25
+ watch: command === 'serve' ? {} : null,
26
+ minify: command === 'build',
27
+ },
28
+ clearScreen: false,
29
+ };
30
+ }
31
+
32
+ export function getDefineKeys(names: string[]) {
33
+ const define: { [name: string]: VitePluginRuntimeKeys } = {};
34
+
35
+ return names.reduce((acc, name) => {
36
+ const NAME = name.toUpperCase();
37
+ const keys: VitePluginRuntimeKeys = {
38
+ VITE_DEV_SERVER_URL: `${NAME}_VITE_DEV_SERVER_URL`,
39
+ VITE_NAME: `${NAME}_VITE_NAME`,
40
+ };
41
+
42
+ return { ...acc, [name]: keys };
43
+ }, define);
44
+ }
45
+
46
+ export function getBuildDefine(env: ConfigEnv<'build'>) {
47
+ const { command, forgeConfig } = env;
48
+ const names = forgeConfig.renderer.filter(({ name }) => name != null).map(({ name }) => name!);
49
+ const defineKeys = getDefineKeys(names);
50
+ const define = Object.entries(defineKeys).reduce((acc, [name, keys]) => {
51
+ const { VITE_DEV_SERVER_URL, VITE_NAME } = keys;
52
+ const def = {
53
+ [VITE_DEV_SERVER_URL]: command === 'serve' ? JSON.stringify(viteDevServerUrls[VITE_DEV_SERVER_URL]) : undefined,
54
+ [VITE_NAME]: JSON.stringify(name),
55
+ };
56
+ return { ...acc, ...def };
57
+ }, {} as Record<string, any>);
58
+
59
+ return define;
60
+ }
61
+
62
+ export function pluginExposeRenderer(name: string): Plugin {
63
+ const { VITE_DEV_SERVER_URL } = getDefineKeys([name])[name];
64
+
65
+ return {
66
+ name: '@electron-forge/plugin-vite:expose-renderer',
67
+ configureServer(server) {
68
+ // Expose server for preload scripts hot reload.
69
+ viteDevServers[name] = server;
70
+
71
+ server.httpServer?.once('listening', () => {
72
+ const addressInfo = server.httpServer?.address() as AddressInfo;
73
+ // Expose env constant for main process use.
74
+ viteDevServerUrls[VITE_DEV_SERVER_URL] = `http://localhost:${addressInfo?.port}`;
75
+ });
76
+ },
77
+ };
78
+ }
79
+
80
+ export function pluginHotRestart(command: 'reload' | 'restart'): Plugin {
81
+ return {
82
+ name: '@electron-forge/plugin-vite:hot-restart',
83
+ closeBundle() {
84
+ if (command === 'reload') {
85
+ for (const server of Object.values(viteDevServers)) {
86
+ // Preload scripts hot reload.
87
+ server.ws.send({ type: 'full-reload' });
88
+ }
89
+ } else if (command === 'restart') {
90
+ // Main process hot restart.
91
+ // https://github.com/electron/forge/blob/v7.2.0/packages/api/core/src/api/start.ts#L216-L223
92
+ // TODO: blocked in #3380
93
+ // process.stdin.emit('data', 'rs');
94
+ }
95
+ },
96
+ };
97
+ }
@@ -0,0 +1,29 @@
1
+ import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite';
2
+
3
+ import { external, getBuildConfig, getBuildDefine, pluginHotRestart } from './vite.base.config';
4
+
5
+ export function getConfig(forgeEnv: ConfigEnv<'build'>): UserConfig {
6
+ const { forgeConfigSelf } = forgeEnv;
7
+ const define = getBuildDefine(forgeEnv);
8
+ const config: UserConfig = {
9
+ build: {
10
+ lib: {
11
+ entry: forgeConfigSelf.entry,
12
+ fileName: () => '[name].js',
13
+ formats: ['cjs'],
14
+ },
15
+ rollupOptions: {
16
+ external,
17
+ },
18
+ },
19
+ plugins: [pluginHotRestart('restart')],
20
+ define,
21
+ resolve: {
22
+ // Load the Node.js entry.
23
+ conditions: ['node'],
24
+ mainFields: ['module', 'jsnext:main', 'jsnext'],
25
+ },
26
+ };
27
+
28
+ return mergeConfig(getBuildConfig(forgeEnv), config);
29
+ }
@@ -0,0 +1,27 @@
1
+ import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite';
2
+
3
+ import { external, getBuildConfig, pluginHotRestart } from './vite.base.config';
4
+
5
+ export function getConfig(forgeEnv: ConfigEnv<'build'>): UserConfig {
6
+ const { forgeConfigSelf } = forgeEnv;
7
+ const config: UserConfig = {
8
+ build: {
9
+ rollupOptions: {
10
+ external,
11
+ // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
12
+ input: forgeConfigSelf.entry,
13
+ output: {
14
+ format: 'cjs',
15
+ // It should not be split chunks.
16
+ inlineDynamicImports: true,
17
+ entryFileNames: '[name].js',
18
+ chunkFileNames: '[name].js',
19
+ assetFileNames: '[name].[ext]',
20
+ },
21
+ },
22
+ },
23
+ plugins: [pluginHotRestart('reload')],
24
+ };
25
+
26
+ return mergeConfig(getBuildConfig(forgeEnv), config);
27
+ }
@@ -0,0 +1,23 @@
1
+ import { type ConfigEnv, type UserConfig } from 'vite';
2
+
3
+ import { pluginExposeRenderer } from './vite.base.config';
4
+
5
+ // https://vitejs.dev/config
6
+ export function getConfig(forgeEnv: ConfigEnv<'renderer'>) {
7
+ const { root, mode, forgeConfigSelf } = forgeEnv;
8
+ const name = forgeConfigSelf.name ?? '';
9
+
10
+ return {
11
+ root,
12
+ mode,
13
+ base: './',
14
+ build: {
15
+ outDir: `.vite/renderer/${name}`,
16
+ },
17
+ plugins: [pluginExposeRenderer(name)],
18
+ resolve: {
19
+ preserveSymlinks: true,
20
+ },
21
+ clearScreen: false,
22
+ } as UserConfig;
23
+ }
@@ -1,4 +1,3 @@
1
- // eslint-disable-next-line node/no-unpublished-import
2
1
  import type { Plugin } from 'vite';
3
2
 
4
3
  export function onBuildDone(callback: () => void) {
@@ -1,14 +0,0 @@
1
- export interface Dependency {
2
- name: string;
3
- path: SourceAndDestination;
4
- dependencies: Dependency[];
5
- }
6
- export interface SourceAndDestination {
7
- src: string;
8
- dest: string;
9
- }
10
- export declare function isDirectory(p: string): Promise<boolean>;
11
- export declare function lookupNodeModulesPaths(root: string, paths?: string[]): Promise<string[]>;
12
- export declare function resolveDependencies(root: string): Promise<Dependency[]>;
13
- export declare function getFlatDependencies(root?: string): Promise<SourceAndDestination[]>;
14
- //# sourceMappingURL=package.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/util/package.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;IAC3B,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYlG;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,yBAmDrD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,SAAgB,mCAW7D"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getFlatDependencies = exports.resolveDependencies = exports.lookupNodeModulesPaths = exports.isDirectory = void 0;
7
- const node_path_1 = __importDefault(require("node:path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- function isRootPath(dir) {
10
- // *unix or Windows root path
11
- return dir === '/' || /^[a-zA-Z]:\\$/i.test(dir);
12
- }
13
- async function isDirectory(p) {
14
- try {
15
- const stat = await fs_extra_1.default.promises.stat(p);
16
- return stat.isDirectory();
17
- }
18
- catch {
19
- return false;
20
- }
21
- }
22
- exports.isDirectory = isDirectory;
23
- async function lookupNodeModulesPaths(root, paths = []) {
24
- if (!root)
25
- return paths;
26
- if (!node_path_1.default.isAbsolute(root))
27
- return paths;
28
- const p = node_path_1.default.join(root, 'node_modules');
29
- if (await isDirectory(p)) {
30
- paths = paths.concat(p);
31
- }
32
- root = node_path_1.default.join(root, '..');
33
- return isRootPath(root) ? paths : await lookupNodeModulesPaths(root, paths);
34
- }
35
- exports.lookupNodeModulesPaths = lookupNodeModulesPaths;
36
- async function resolveDependencies(root) {
37
- const rootDependencies = Object.keys((await fs_extra_1.default.readJson(node_path_1.default.join(root, 'package.json'))).dependencies || {});
38
- const resolve = async (prePath, dependencies, collected = new Map()) => await Promise.all(dependencies.map(async (name) => {
39
- let curPath = prePath, depPath = null, packageJson = null;
40
- while (!packageJson && !isRootPath(curPath)) {
41
- const allNodeModules = await lookupNodeModulesPaths(curPath);
42
- for (const nodeModules of allNodeModules) {
43
- depPath = node_path_1.default.join(nodeModules, name);
44
- if (await fs_extra_1.default.pathExists(depPath))
45
- break;
46
- }
47
- if (depPath) {
48
- try {
49
- packageJson = await fs_extra_1.default.readJson(node_path_1.default.join(depPath, 'package.json'));
50
- }
51
- catch (err) {
52
- // lookup node_modules
53
- curPath = node_path_1.default.join(curPath, '..');
54
- if (curPath.length < root.length) {
55
- console.error(`not found 'node_modules' in root path: ${root}`);
56
- throw err;
57
- }
58
- }
59
- }
60
- }
61
- if (!depPath || !packageJson) {
62
- throw new Error(`find dependencies error in: ${curPath}`);
63
- }
64
- const result = {
65
- name,
66
- path: {
67
- src: depPath,
68
- dest: node_path_1.default.relative(root, depPath),
69
- },
70
- dependencies: [],
71
- };
72
- const shouldResolveDeps = !collected.has(depPath);
73
- collected.set(depPath, result);
74
- if (shouldResolveDeps) {
75
- result.dependencies = await resolve(depPath, Object.keys(packageJson.dependencies || {}), collected);
76
- }
77
- return result;
78
- }));
79
- return resolve(root, rootDependencies);
80
- }
81
- exports.resolveDependencies = resolveDependencies;
82
- async function getFlatDependencies(root = process.cwd()) {
83
- const depsTree = await resolveDependencies(root);
84
- const depsFlat = new Map();
85
- const flatten = (dep) => {
86
- depsFlat.set(dep.path.src, dep.path); // dedup
87
- dep.dependencies.forEach(flatten);
88
- };
89
- depsTree.forEach(flatten);
90
- return [...depsFlat.values()];
91
- }
92
- exports.getFlatDependencies = getFlatDependencies;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTZCO0FBRTdCLHdEQUEwQjtBQWExQixTQUFTLFVBQVUsQ0FBQyxHQUFXO0lBQzdCLDZCQUE2QjtJQUM3QixPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFDLENBQVM7SUFDekMsSUFBSTtRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQzNCO0lBQUMsTUFBTTtRQUNOLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUEQsa0NBT0M7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQUMsSUFBWSxFQUFFLFFBQWtCLEVBQUU7SUFDN0UsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN4QixJQUFJLENBQUMsbUJBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFekMsTUFBTSxDQUFDLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRTFDLElBQUksTUFBTSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekI7SUFDRCxJQUFJLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTdCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxL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
@@ -1,108 +0,0 @@
1
- import path from 'node:path';
2
-
3
- import fs from 'fs-extra';
4
-
5
- export interface Dependency {
6
- name: string;
7
- path: SourceAndDestination;
8
- dependencies: Dependency[];
9
- }
10
-
11
- export interface SourceAndDestination {
12
- src: string;
13
- dest: string;
14
- }
15
-
16
- function isRootPath(dir: string) {
17
- // *unix or Windows root path
18
- return dir === '/' || /^[a-zA-Z]:\\$/i.test(dir);
19
- }
20
-
21
- export async function isDirectory(p: string): Promise<boolean> {
22
- try {
23
- const stat = await fs.promises.stat(p);
24
- return stat.isDirectory();
25
- } catch {
26
- return false;
27
- }
28
- }
29
-
30
- export async function lookupNodeModulesPaths(root: string, paths: string[] = []): Promise<string[]> {
31
- if (!root) return paths;
32
- if (!path.isAbsolute(root)) return paths;
33
-
34
- const p = path.join(root, 'node_modules');
35
-
36
- if (await isDirectory(p)) {
37
- paths = paths.concat(p);
38
- }
39
- root = path.join(root, '..');
40
-
41
- return isRootPath(root) ? paths : await lookupNodeModulesPaths(root, paths);
42
- }
43
-
44
- export async function resolveDependencies(root: string) {
45
- const rootDependencies = Object.keys((await fs.readJson(path.join(root, 'package.json'))).dependencies || {});
46
- const resolve = async (prePath: string, dependencies: string[], collected: Map<string, Dependency> = new Map()) =>
47
- await Promise.all(
48
- dependencies.map(async (name) => {
49
- let curPath = prePath,
50
- depPath = null,
51
- packageJson = null;
52
- while (!packageJson && !isRootPath(curPath)) {
53
- const allNodeModules = await lookupNodeModulesPaths(curPath);
54
-
55
- for (const nodeModules of allNodeModules) {
56
- depPath = path.join(nodeModules, name);
57
- if (await fs.pathExists(depPath)) break;
58
- }
59
-
60
- if (depPath) {
61
- try {
62
- packageJson = await fs.readJson(path.join(depPath, 'package.json'));
63
- } catch (err) {
64
- // lookup node_modules
65
- curPath = path.join(curPath, '..');
66
- if (curPath.length < root.length) {
67
- console.error(`not found 'node_modules' in root path: ${root}`);
68
- throw err;
69
- }
70
- }
71
- }
72
- }
73
-
74
- if (!depPath || !packageJson) {
75
- throw new Error(`find dependencies error in: ${curPath}`);
76
- }
77
-
78
- const result: Dependency = {
79
- name,
80
- path: {
81
- src: depPath,
82
- dest: path.relative(root, depPath),
83
- },
84
- dependencies: [],
85
- };
86
- const shouldResolveDeps = !collected.has(depPath);
87
- collected.set(depPath, result);
88
- if (shouldResolveDeps) {
89
- result.dependencies = await resolve(depPath, Object.keys(packageJson.dependencies || {}), collected);
90
- }
91
- return result;
92
- })
93
- );
94
- return resolve(root, rootDependencies);
95
- }
96
-
97
- export async function getFlatDependencies(root = process.cwd()) {
98
- const depsTree = await resolveDependencies(root);
99
- const depsFlat = new Map<string, SourceAndDestination>();
100
-
101
- const flatten = (dep: Dependency) => {
102
- depsFlat.set(dep.path.src, dep.path); // dedup
103
- dep.dependencies.forEach(flatten);
104
- };
105
- depsTree.forEach(flatten);
106
-
107
- return [...depsFlat.values()];
108
- }