From 7e7a039f1ea008dcdcd4561fc17c72246b3f3e09 Mon Sep 17 00:00:00 2001 From: "Tom (plebeius.eth)" Date: Sun, 30 Mar 2025 15:58:15 +0200 Subject: [PATCH] fix(electron): bundle main process to resolve ESM issues in Linux AppImage --- electron/main.js | 1 + package.json | 13 ++++++++----- yarn.lock | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/electron/main.js b/electron/main.js index 098f2ed8..ffca9e8c 100644 --- a/electron/main.js +++ b/electron/main.js @@ -11,6 +11,7 @@ import packageJson from '../package.json' with { type: 'json' }; import FormData from 'form-data'; import fetch from 'node-fetch'; import { createReadStream } from 'fs'; +import fs from 'fs'; const __filename = fileURLToPath(import.meta.url); const dirname = path.dirname(__filename); diff --git a/package.json b/package.json index 0ec09809..1c8e8841 100644 --- a/package.json +++ b/package.json @@ -57,9 +57,10 @@ "electron:no-delete-data": "yarn electron:before:download-ipfs && electron .", "electron:start": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://localhost:3000 && yarn electron\"", "electron:start:no-delete-data": "concurrently \"cross-env BROWSER=none yarn start\" \"wait-on http://localhost:3000 && yarn electron:no-delete-data\"", - "electron:build:linux": "electron-builder build --publish never -l", - "electron:build:windows": "electron-builder build --publish never -w", - "electron:build:mac": "electron-builder build --publish never -m", + "electron:build:main": "esbuild electron/main.js --bundle --platform=node --target=node16 --outfile=electron/main.bundle.js --external:electron --format=esm --packages=external", + "electron:build:linux": "yarn electron:build:main && electron-builder build --publish never -l", + "electron:build:windows": "yarn electron:build:main && electron-builder build --publish never -w", + "electron:build:mac": "yarn electron:build:main && electron-builder build --publish never -m", "electron:before": "yarn electron:before:download-ipfs && yarn electron:before:delete-data", "electron:before:download-ipfs": "node electron/download-ipfs", "electron:before:delete-data": "rimraf .plebbit", @@ -105,6 +106,7 @@ "electron": "35.0.1", "electron-builder": "24.13.2", "electron-rebuild": "3.2.9", + "esbuild": "0.25.1", "eslint": "8.56.0", "eslint-config-react-app": "7.0.1", "eslint-plugin-react": "7.37.4", @@ -121,7 +123,7 @@ "vite-plugin-pwa": "0.21.1", "wait-on": "7.0.1" }, - "main": "electron/main.js", + "main": "electron/main.bundle.js", "build": { "appId": "seedit.desktop", "productName": "seedit", @@ -139,7 +141,8 @@ "files": [ "build/**/*", "electron/**/*", - "package.json" + "package.json", + "electron/main.bundle.js" ], "extends": null, "mac": { diff --git a/yarn.lock b/yarn.lock index 09eb051d..001dc316 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6829,7 +6829,7 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild@^0.25.0: +esbuild@^0.25.0, esbuild@^0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f" integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==