From dbad4fce36d93e4eaa6534787dab83aed34924b2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 27 Apr 2025 20:58:15 +0300 Subject: [PATCH] chore(nx/forge): try a method to avoid missing prebuilds --- apps/desktop/electron-forge/forge.config.cjs | 20 ++------------------ apps/desktop/package.json | 4 ++-- apps/desktop/webpack.config.cjs | 4 ++-- apps/server/webpack.config.cjs | 2 +- pnpm-workspace.yaml | 2 +- 5 files changed, 8 insertions(+), 24 deletions(-) diff --git a/apps/desktop/electron-forge/forge.config.cjs b/apps/desktop/electron-forge/forge.config.cjs index 1af2986d6..3f81bb477 100644 --- a/apps/desktop/electron-forge/forge.config.cjs +++ b/apps/desktop/electron-forge/forge.config.cjs @@ -43,23 +43,7 @@ module.exports = { // All resources should stay in Resources directory for macOS ...(process.platform === "darwin" ? [] : extraResourcesForPlatform) ], - afterPrune: [ - (buildPath, _electronVersion, _platform, _arch, callback) => { - // buildPath is a temporary directory that electron-packager creates - it's in the form of - // /tmp/electron-packager/tmp-SjJl0s/resources/app - try { - const cleanupNodeModulesScript = path.join(buildPath, "build", "node_modules", "@triliumnext/server", "scripts", "cleanupNodeModules.ts"); - // we don't have access to any devDeps like 'tsx' here, so use the built-in '--experimental-strip-types' flag instead - const command = `node --experimental-strip-types ${cleanupNodeModulesScript} "${buildPath}" --skip-prune-dev-deps`; - // execSync throws, if above returns any non-zero exit code - // TODO: Not working. - // execSync(command); - callback() - } catch(err) { - callback(err) - } - } - ], + prune: false, afterComplete: [ (buildPath, _electronVersion, platform, _arch, callback) => { // Only move resources on non-macOS platforms @@ -190,7 +174,7 @@ function getExtraResourcesForPlatform() { const getScriptResources = () => { const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"]; const scriptExt = (process.platform === "win32") ? "bat" : "sh"; - return scripts.map(script => `apps/desktop/electron-forge/${script}.${scriptExt}`); + return scripts.map(script => `electron-forge/${script}.${scriptExt}`); } switch (process.platform) { diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 90b8745ee..30faee023 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -67,11 +67,11 @@ }, "electron-forge:make": { "dependsOn": [ "build" ], - "command": "pnpm exec electron-forge make apps/desktop/dist" + "command": "pnpm -C apps/desktop exec cross-env DEBUG=* NODE_INSTALLER=npm electron-forge make dist" }, "electron-forge:package": { "dependsOn": [ "build" ], - "command": "pnpm exec cross-env DEBUG=* electron-forge package apps/desktop/dist" + "command": "pnpm -C apps/desktop exec cross-env DEBUG=* NODE_INSTALLER=npm electron-forge package dist" } } } diff --git a/apps/desktop/webpack.config.cjs b/apps/desktop/webpack.config.cjs index 90b9d03ce..5ee7194db 100644 --- a/apps/desktop/webpack.config.cjs +++ b/apps/desktop/webpack.config.cjs @@ -42,11 +42,11 @@ module.exports = { to: join(outputDir, "assets") }, { - from: "../../node_modules/@electron/remote", + from: "node_modules/@electron/remote", to: join(outputDir, "node_modules/@electron/remote") }, { - from: "../../node_modules/prebuild-install", + from: "node_modules/prebuild-install", to: join(outputDir, "node_modules/better-sqlite3/node_modules/prebuild-install") }, { diff --git a/apps/server/webpack.config.cjs b/apps/server/webpack.config.cjs index f98f1a0cd..bf11995ae 100644 --- a/apps/server/webpack.config.cjs +++ b/apps/server/webpack.config.cjs @@ -36,7 +36,7 @@ function buildFilesToCopy() { for (const nodePath of nodePaths) { files.push({ - from: join("..", "..", "node_modules", nodePath), + from: join("node_modules", nodePath), to: join(outputDir, "node_modules", nodePath) }) } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ae3b0bc7..4ce2e4d5a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,4 +19,4 @@ onlyBuiltDependencies: - fs-xattr - macos-alias -nodeLinker: hoisted +nodeLinker: isolated