Files
brandly/forge.config.ts
kevinguevara e7520b28f9 feat: add Windows .exe support
- Add @electron-forge/maker-squirrel for Windows installer
- Create .ico icon from existing PNG
- Fix compositor platform detection for win32
- Forge config now builds both .dmg (macOS) and .exe (Windows)
2026-06-02 04:10:11 -05:00

61 lines
1.7 KiB
TypeScript

/**
* Electron Forge Configuration — Bradly Desktop App
*
* Handles packaging and creating distributable installers.
* Targets: macOS (.dmg) and Windows (.exe)
*/
import type { ForgeConfig } from '@electron-forge/shared-types';
import { MakerDMG } from '@electron-forge/maker-dmg';
import { MakerSquirrel } from '@electron-forge/maker-squirrel';
const config: ForgeConfig = {
packagerConfig: {
name: 'Bradly',
executableName: 'bradly',
icon: './assets/icon', // .icns for macOS, .ico for Windows (auto-resolved)
asar: {
// Remotion compositor binaries MUST be outside app.asar
// because they are native executables that need direct filesystem access
unpack: '{**/node_modules/@remotion/compositor-*/**,**/node_modules/@remotion/renderer/**}',
},
// Include the built renderer and Remotion bundle as extra resources
extraResource: [
'./out/renderer',
'./out/remotion-bundle',
],
// Ignore development files during packaging
ignore: [
/^\/src$/,
/^\/scripts$/,
/^\/uploads$/,
/^\/renders$/,
/^\/\.vscode$/,
/^\/\.git$/,
/^\/\.env/,
/^\/\.antigravity$/,
/^\/vite\.config\.ts$/,
/^\/electron\.vite\.config\.ts$/,
/^\/tsconfig\.json$/,
/^\/ABOUT\.md$/,
/^\/AGENTS\.md$/,
/^\/README\.md$/,
/^\/schema\.sql$/,
/^\/backend_endpoint\.py$/,
],
},
makers: [
// macOS installer
new MakerDMG({
format: 'ULFO',
}),
// Windows installer (.exe)
new MakerSquirrel({
name: 'Bradly',
setupIcon: './assets/icon.ico',
iconUrl: 'https://raw.githubusercontent.com/kevdevg/Bradly/main/assets/icon.ico',
}),
],
};
export default config;