@electron-forge/plugin-vite 7.3.1 → 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;AAW9E,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"}
@@ -9,9 +9,8 @@ const plugin_base_1 = require("@electron-forge/plugin-base");
9
9
  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
- // eslint-disable-next-line node/no-unpublished-import
12
+ const listr2_1 = require("listr2");
13
13
  const vite_1 = __importDefault(require("vite"));
14
- const package_1 = require("./util/package");
15
14
  const plugins_1 = require("./util/plugins");
16
15
  const ViteConfig_1 = __importDefault(require("./ViteConfig"));
17
16
  const d = (0, debug_1.default)('electron-forge:plugin:vite');
@@ -62,15 +61,15 @@ Your packaged app may be larger than expected if you dont ignore everything othe
62
61
  forgeConfig.packagerConfig.ignore = (file) => {
63
62
  if (!file)
64
63
  return false;
65
- // Always starts with `/`
64
+ // `file` always starts with `/`
66
65
  // @see - https://github.com/electron/packager/blob/v18.1.3/src/copy-filter.ts#L89-L93
66
+ // Collect the files built by Vite
67
67
  return !file.startsWith('/.vite');
68
68
  };
69
69
  return forgeConfig;
70
70
  };
71
71
  this.packageAfterCopy = async (_forgeConfig, buildPath) => {
72
72
  const pj = await fs_extra_1.default.readJson(node_path_1.default.resolve(this.projectDir, 'package.json'));
73
- const flatDependencies = await (0, package_1.getFlatDependencies)(this.projectDir);
74
73
  if (!pj.main?.includes('.vite/')) {
75
74
  throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the
76
75
  "main" entry point in "package.json" to be ".vite/*" (where the plugin outputs
@@ -79,13 +78,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
79
78
  if (pj.config) {
80
79
  delete pj.config.forge;
81
80
  }
82
- await fs_extra_1.default.writeJson(node_path_1.default.resolve(buildPath, 'package.json'), pj, {
83
- spaces: 2,
84
- });
85
- // Copy the dependencies in package.json
86
- for (const dep of flatDependencies) {
87
- await fs_extra_1.default.copy(dep.src, node_path_1.default.resolve(buildPath, dep.dest));
88
- }
81
+ await fs_extra_1.default.writeJson(node_path_1.default.resolve(buildPath, 'package.json'), pj, { spaces: 2 });
89
82
  };
90
83
  this.startLogic = async () => {
91
84
  if (VitePlugin.alreadyStarted)
@@ -99,9 +92,9 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
99
92
  task: async () => {
100
93
  await this.launchRendererDevServers();
101
94
  },
102
- options: {
95
+ rendererOptions: {
103
96
  persistentOutput: true,
104
- showTimer: true,
97
+ timer: { ...listr2_1.PRESET_TIMER },
105
98
  },
106
99
  },
107
100
  // The main process depends on the `server.port` of the renderer process, so the renderer process is run first.
@@ -110,8 +103,8 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
110
103
  task: async () => {
111
104
  await this.build();
112
105
  },
113
- options: {
114
- showTimer: true,
106
+ rendererOptions: {
107
+ timer: { ...listr2_1.PRESET_TIMER },
115
108
  },
116
109
  },
117
110
  ],
@@ -163,7 +156,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
163
156
  viteDevServer.printUrls();
164
157
  this.servers.push(viteDevServer);
165
158
  if (viteDevServer.httpServer) {
166
- // Make suee that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198)
159
+ // Make sure that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198)
167
160
  const addressInfo = viteDevServer.httpServer.address();
168
161
  const isAddressInfo = (x) => x?.address;
169
162
  if (isAddressInfo(addressInfo)) {
@@ -206,4 +199,4 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
206
199
  exports.default = VitePlugin;
207
200
  exports.VitePlugin = VitePlugin;
208
201
  VitePlugin.alreadyStarted = false;
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUU3Qiw2REFBOEU7QUFDOUUsa0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQix3REFBMEI7QUFDMUIsc0RBQXNEO0FBQ3RELGdEQUF1QztBQUV2Qyw0Q0FBcUQ7QUFDckQsNENBQTZDO0FBQzdDLDhEQUErQztBQVEvQyxNQUFNLENBQUMsR0FBRyxJQUFBLGVBQUssRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRTlDLE1BQXFCLFVBQVcsU0FBUSx3QkFBNEI7SUFBcEU7O1FBR1MsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUViLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFVZixhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUUvQixZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQUUzQyxTQUFJLEdBQUcsQ0FBQyxHQUFXLEVBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQTBCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsQ0FBQztRQVdGLGFBQVEsR0FBRyxHQUFzQixFQUFFO1lBQ2pDLE9BQU87Z0JBQ0wsVUFBVSxFQUFFO29CQUNWLElBQUEsaUNBQW1CLEVBQWUsS0FBSyxJQUFJLEVBQUU7d0JB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
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVml0ZVBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9WaXRlUGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUU3Qiw2REFBOEU7QUFDOUUsa0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQix3REFBMEI7QUFDMUIsbUNBQXNDO0FBQ3RDLGdEQUF1QztBQUV2Qyw0Q0FBNkM7QUFDN0MsOERBQStDO0FBUS9DLE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFOUMsTUFBcUIsVUFBVyxTQUFRLHdCQUE0QjtJQUFwRTs7UUFHUyxTQUFJLEdBQUcsTUFBTSxDQUFDO1FBRWIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVVmLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBRS9CLFlBQU8sR0FBeUIsRUFBRSxDQUFDO1FBRTNDLFNBQUksR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBMEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDO1FBV0YsYUFBUSxHQUFHLEdBQXNCLEVBQUU7WUFDakMsT0FBTztnQkFDTCxVQUFVLEVBQUU7b0JBQ1YsSUFBQSxpQ0FBbUIsRUFBZSxLQUFLLElBQUksRUFBRTt3QkFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ25CLE1BQU0sa0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUU5QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDMUQsQ0FBQyxFQUFFLHVCQUF1QixDQUFDO2lCQUM1QjtnQkFDRCxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDbEMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLENBQUM7b0JBQ25DLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTt3QkFDcEIsSUFBSSxLQUFLLENBQUMsU0FBUzs0QkFBRSxPQUFPO3dCQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDbEQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQ3hDLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRix1QkFBa0IsR0FBRyxLQUFLLEVBQUUsV0FBZ0MsRUFBZ0MsRUFBRTtZQUM1RixXQUFXLENBQUMsY0FBYyxLQUFLLEVBQUUsQ0FBQztZQUVsQyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO2dCQUNyQyxJQUFJLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO29CQUMzRCxPQUFPLENBQUMsS0FBSyxDQUNYLGVBQUssQ0FBQyxNQUFNLENBQUM7OzBHQUVtRixDQUFDLENBQ2xHLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxXQUFXLENBQUM7YUFDcEI7WUFFRCxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsSUFBSTtvQkFBRSxPQUFPLEtBQUssQ0FBQztnQkFFeEIsZ0NBQWdDO2dCQUNoQyxzRkFBc0Y7Z0JBRXRGLGtDQUFrQztnQkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO1lBQ0YsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYscUJBQWdCLEdBQUcsS0FBSyxFQUFFLFlBQWlDLEVBQUUsU0FBaUIsRUFBaUIsRUFBRTtZQUMvRixNQUFNLEVBQUUsR0FBRyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLG1CQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUU1RSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUM7O3VDQUVpQixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0Q7WUFFRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUN4QjtZQUVELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQztRQUVGLGVBQVUsR0FBRyxLQUFLLElBQTBCLEVBQUU7WUFDNUMsSUFBSSxVQUFVLENBQUMsY0FBYztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM1QyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUVqQyxNQUFNLGtCQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU5QixPQUFPO2dCQUNMLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxLQUFLLEVBQUUsaURBQWlEO3dCQUN4RCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7NEJBQ2YsTUFBTSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQzt3QkFDeEMsQ0FBQzt3QkFDRCxlQUFlLEVBQUU7NEJBQ2YsZ0JBQWdCLEVBQUUsSUFBSTs0QkFDdEIsS0FBSyxFQUFFLEVBQUUsR0FBRyxxQkFBWSxFQUFFO3lCQUMzQjtxQkFDRjtvQkFDRCwrR0FBK0c7b0JBQy9HO3dCQUNFLEtBQUssRUFBRSw2QkFBNkI7d0JBQ3BDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRTs0QkFDZixNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDckIsQ0FBQzt3QkFDRCxlQUFlLEVBQUU7NEJBQ2YsS0FBSyxFQUFFLEVBQUUsR0FBRyxxQkFBWSxFQUFFO3lCQUMzQjtxQkFDRjtpQkFDRjtnQkFDRCxNQUFNLEVBQUUsS0FBSzthQUNkLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRix5REFBeUQ7UUFDekQsVUFBSyxHQUFHLEtBQUssSUFBbUIsRUFBRTtZQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUQsTUFBTSxVQUFVLEdBQW9CLEVBQUUsQ0FBQztZQUN2QyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQU0sRUFBc0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSyxVQUFVLENBQUM7WUFFakYsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7Z0JBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO29CQUN0RCxjQUFJO3lCQUNELEtBQUssQ0FBQzt3QkFDTCxzR0FBc0c7d0JBQ3RHLFVBQVUsRUFBRSxLQUFLO3dCQUNqQixHQUFHLFVBQVU7d0JBQ2IsT0FBTyxFQUFFLENBQUMsSUFBQSxxQkFBVyxFQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUMvRCxDQUFDO3lCQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUNmLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDNUI7d0JBRUQsT0FBTyxNQUFNLENBQUM7b0JBQ2hCLENBQUMsQ0FBQzt5QkFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO2dCQUVILFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUI7WUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxJQUFtQixFQUFFO1lBQ3hDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sY0FBSSxDQUFDLEtBQUssQ0FBQztvQkFDZixVQUFVLEVBQUUsS0FBSztvQkFDakIsR0FBRyxVQUFVO2lCQUNkLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsNkJBQXdCLEdBQUcsS0FBSyxJQUFtQixFQUFFO1lBQ25ELEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sYUFBYSxHQUFHLE1BQU0sY0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDNUMsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLEdBQUcsVUFBVTtpQkFDZCxDQUFDLENBQUM7Z0JBRUgsTUFBTSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRWpDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtvQkFDNUIsdUZBQXVGO29CQUN2RixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2RCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQU0sRUFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7b0JBRS9ELElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFO3dCQUM5QixVQUFVLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQzt3QkFDekIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztxQkFDM0M7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQztRQUVGLGdCQUFXLEdBQUcsQ0FBQyxPQUE4QyxFQUFFLEdBQVcsRUFBUSxFQUFFO1lBQ2xGLENBQUMsQ0FBQyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbkMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7b0JBQzNCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDakI7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBRW5CLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDakMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7b0JBQzFCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDaEI7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7YUFDbkI7WUFDRCxJQUFJLEdBQUc7Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMscURBQXFEO1lBQ3JELDJDQUEyQztZQUMzQyxJQUFJLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBaE1RLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFZLGVBQWU7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLG9CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDOztBQWxDSCw2QkEyTkM7QUFFUSxnQ0FBVTtBQTVORix5QkFBYyxHQUFHLEtBQUssQ0FBQyJ9
@@ -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.3.1",
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,16 +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.3.1",
19
- "@electron-forge/plugin-base": "7.3.1",
20
- "@electron-forge/shared-types": "7.3.1",
21
- "@electron-forge/web-multi-logger": "7.3.1",
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
- "fs-extra": "^10.0.0"
24
+ "fs-extra": "^10.0.0",
25
+ "listr2": "^7.0.2"
25
26
  },
26
27
  "devDependencies": {
27
- "@electron/packager": "^18.1.3",
28
+ "@electron/packager": "^18.3.5",
28
29
  "@malept/cross-spawn-promise": "^2.0.0",
29
30
  "@types/node": "^18.0.3",
30
31
  "chai": "^4.3.3",
@@ -43,5 +44,5 @@
43
44
  "dist",
44
45
  "src"
45
46
  ],
46
- "gitHead": "ccf606325817a6f066ac3de261851349384a6750"
47
+ "gitHead": "5941a9a067c8af0daee0aab01c44a0040a9bdea0"
47
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
@@ -4,10 +4,9 @@ import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base';
4
4
  import chalk from 'chalk';
5
5
  import debug from 'debug';
6
6
  import fs from 'fs-extra';
7
- // eslint-disable-next-line node/no-unpublished-import
7
+ import { PRESET_TIMER } from 'listr2';
8
8
  import { default as vite } from 'vite';
9
9
 
10
- import { getFlatDependencies } from './util/package';
11
10
  import { onBuildDone } from './util/plugins';
12
11
  import ViteConfigGenerator from './ViteConfig';
13
12
 
@@ -94,8 +93,10 @@ Your packaged app may be larger than expected if you dont ignore everything othe
94
93
  forgeConfig.packagerConfig.ignore = (file: string) => {
95
94
  if (!file) return false;
96
95
 
97
- // Always starts with `/`
96
+ // `file` always starts with `/`
98
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
99
100
  return !file.startsWith('/.vite');
100
101
  };
101
102
  return forgeConfig;
@@ -103,7 +104,6 @@ Your packaged app may be larger than expected if you dont ignore everything othe
103
104
 
104
105
  packageAfterCopy = async (_forgeConfig: ResolvedForgeConfig, buildPath: string): Promise<void> => {
105
106
  const pj = await fs.readJson(path.resolve(this.projectDir, 'package.json'));
106
- const flatDependencies = await getFlatDependencies(this.projectDir);
107
107
 
108
108
  if (!pj.main?.includes('.vite/')) {
109
109
  throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the
@@ -115,14 +115,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
115
115
  delete pj.config.forge;
116
116
  }
117
117
 
118
- await fs.writeJson(path.resolve(buildPath, 'package.json'), pj, {
119
- spaces: 2,
120
- });
121
-
122
- // Copy the dependencies in package.json
123
- for (const dep of flatDependencies) {
124
- await fs.copy(dep.src, path.resolve(buildPath, dep.dest));
125
- }
118
+ await fs.writeJson(path.resolve(buildPath, 'package.json'), pj, { spaces: 2 });
126
119
  };
127
120
 
128
121
  startLogic = async (): Promise<StartResult> => {
@@ -138,9 +131,9 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
138
131
  task: async () => {
139
132
  await this.launchRendererDevServers();
140
133
  },
141
- options: {
134
+ rendererOptions: {
142
135
  persistentOutput: true,
143
- showTimer: true,
136
+ timer: { ...PRESET_TIMER },
144
137
  },
145
138
  },
146
139
  // The main process depends on the `server.port` of the renderer process, so the renderer process is run first.
@@ -149,8 +142,8 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
149
142
  task: async () => {
150
143
  await this.build();
151
144
  },
152
- options: {
153
- showTimer: true,
145
+ rendererOptions: {
146
+ timer: { ...PRESET_TIMER },
154
147
  },
155
148
  },
156
149
  ],
@@ -212,7 +205,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
212
205
  this.servers.push(viteDevServer);
213
206
 
214
207
  if (viteDevServer.httpServer) {
215
- // Make suee that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198)
208
+ // Make sure that `getDefines` in VitePlugin.ts gets the correct `server.port`. (#3198)
216
209
  const addressInfo = viteDevServer.httpServer.address();
217
210
  const isAddressInfo = (x: any): x is AddressInfo => x?.address;
218
211
 
@@ -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
- }