diff --git a/electron-builder.yml b/electron-builder.yml index 2f1779c..1e79b4b 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -25,4 +25,4 @@ mac: category: public.app-category.developer-tools target: - target: dmg - arch: [universal] + arch: [arm64] diff --git a/scripts/build-electron.mjs b/scripts/build-electron.mjs index 5ef8fe6..360b9f3 100644 --- a/scripts/build-electron.mjs +++ b/scripts/build-electron.mjs @@ -1,4 +1,27 @@ import { build } from 'esbuild'; +import fs from 'fs'; +import path from 'path'; + +// Replace symlinks in standalone with real copies so electron-builder can package them +function resolveStandaloneSymlinks() { + const standaloneModules = '.next/standalone/.next/node_modules'; + if (!fs.existsSync(standaloneModules)) return; + + const entries = fs.readdirSync(standaloneModules); + for (const entry of entries) { + const fullPath = path.join(standaloneModules, entry); + const stat = fs.lstatSync(fullPath); + if (stat.isSymbolicLink()) { + const target = fs.readlinkSync(fullPath); + const resolved = path.resolve(standaloneModules, target); + if (fs.existsSync(resolved)) { + fs.rmSync(fullPath); + fs.cpSync(resolved, fullPath, { recursive: true }); + console.log(`Resolved symlink: ${entry} -> ${target}`); + } + } + } +} async function buildElectron() { const shared = { @@ -23,6 +46,9 @@ async function buildElectron() { }); console.log('Electron build complete'); + + // Fix standalone symlinks after next build + resolveStandaloneSymlinks(); } buildElectron().catch((err) => { diff --git a/tsconfig.json b/tsconfig.json index cf9c65d..f4fe347 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,5 +30,5 @@ ".next/dev/types/**/*.ts", "**/*.mts" ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "electron", "dist-electron", "scripts", "release"] }