Skip to content

Commit 6704613

Browse files
committed
Optimize post electron forge build module copying
1 parent 92f87cb commit 6704613

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

forge.config.ts

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@ import type { ForgeConfig } from "@electron-forge/shared-types";
22
import path from "path";
33
import fs from "fs-extra";
44

5-
function removeNextjsModules(exceptionList: string[], nodeModulesPath: string) {
6-
fs.readdirSync(nodeModulesPath).forEach((module) => {
7-
if (!exceptionList.includes(module)) {
8-
fs.removeSync(path.join(nodeModulesPath, module));
9-
}
5+
function moveModule(moduleList: string[], resourcePath: string) {
6+
moduleList.forEach((module) => {
7+
fs.moveSync(
8+
path.join(resourcePath, module),
9+
path.join(resourcePath, "app/node_modules", module),
10+
);
1011
});
1112
}
1213

14+
const electronModules = ["electron-serve"];
15+
1316
const config: ForgeConfig = {
1417
outDir: "out-desktop",
1518
packagerConfig: {
@@ -25,35 +28,29 @@ const config: ForgeConfig = {
2528
return false;
2629
} else if (path.match(/desktop/)) {
2730
return false;
28-
} else if (path.match(/node_modules/)) {
29-
return false;
3031
}
3132
return true;
3233
},
34+
extraResource: electronModules.map((module) => `node_modules/${module}`),
3335
afterComplete: [
3436
(extractPath, electronVersion, platform, arch, done) => {
3537
// We need electron-serve to exist inside the electron build's node_modules.
3638
// All other modules from nextjs are not needed and can be removed.
37-
38-
const electronModules = ["electron-serve"];
3939
if (platform === "win32") {
40-
removeNextjsModules(
40+
moveModule(
4141
electronModules,
42-
path.join(extractPath, "resources/app/node_modules"),
43-
);
42+
path.join(extractPath, "resources"),
43+
)
4444
} else if (platform === "darwin") {
45-
removeNextjsModules(
45+
moveModule(
4646
electronModules,
47-
path.join(
48-
extractPath,
49-
"chisel-editor.app/Contents/Resources/app/node_modules",
50-
),
51-
);
47+
path.join(extractPath, "chisel-editor.app/Contents/Resources"),
48+
)
5249
} else if (platform === "linux") {
53-
removeNextjsModules(
50+
moveModule(
5451
electronModules,
55-
path.join(extractPath, "resources/app/node_modules"),
56-
);
52+
path.join(extractPath, "resources"),
53+
)
5754
}
5855

5956
done();

0 commit comments

Comments
 (0)