/ forge.config.ts
forge.config.ts
1 import type { ForgeConfig } from '@electron-forge/shared-types'; 2 import { MakerSquirrel } from '@electron-forge/maker-squirrel'; 3 import { MakerZIP } from '@electron-forge/maker-zip'; 4 import { MakerDMG } from '@electron-forge/maker-dmg'; 5 import { MakerDeb } from '@electron-forge/maker-deb'; 6 import { MakerRpm } from '@electron-forge/maker-rpm'; 7 import { PublisherGithub } from '@electron-forge/publisher-github'; 8 import { VitePlugin } from '@electron-forge/plugin-vite'; 9 import { FusesPlugin } from '@electron-forge/plugin-fuses'; 10 import { FuseV1Options, FuseVersion } from '@electron/fuses'; 11 import path from 'path'; 12 13 const config: ForgeConfig = { 14 packagerConfig: { 15 asar: true, 16 executableName: 'gnosis', 17 icon: path.resolve(__dirname, 'Icon/macos/AppIcon'), 18 ...(process.env.APPLE_TEAM_ID 19 ? { 20 osxSign: { 21 optionsForFile: () => ({ 22 entitlements: path.resolve(__dirname, 'entitlements.plist'), 23 entitlementsInherit: path.resolve(__dirname, 'entitlements.child.plist'), 24 }), 25 }, 26 osxNotarize: { 27 appleId: process.env.APPLE_ID ?? '', 28 appleIdPassword: process.env.APPLE_ID_PASSWORD ?? '', 29 teamId: process.env.APPLE_TEAM_ID, 30 }, 31 } 32 : {}), 33 }, 34 rebuildConfig: {}, 35 makers: [ 36 new MakerSquirrel({ 37 authors: 'Oddur Magnusson', 38 iconUrl: 'https://raw.githubusercontent.com/oddur/gnosis/main/Icon/web/favicon.ico', 39 setupIcon: path.resolve(__dirname, 'Icon/web/favicon.ico'), 40 }), 41 new MakerZIP({}, ['darwin']), 42 new MakerDMG({ name: 'Gnosis' }), 43 new MakerDeb({}), 44 new MakerRpm({ options: { license: 'MIT' } }), 45 ], 46 publishers: [ 47 new PublisherGithub({ 48 repository: { owner: 'oddur', name: 'gnosis' }, 49 draft: false, 50 prerelease: false, 51 }), 52 ], 53 plugins: [ 54 new VitePlugin({ 55 build: [ 56 { entry: 'src/main.ts', config: 'vite.main.config.ts', target: 'main' }, 57 { entry: 'src/preload.ts', config: 'vite.preload.config.ts', target: 'preload' }, 58 ], 59 renderer: [{ name: 'main_window', config: 'vite.renderer.config.ts' }], 60 }), 61 new FusesPlugin({ 62 version: FuseVersion.V1, 63 [FuseV1Options.RunAsNode]: false, 64 [FuseV1Options.EnableCookieEncryption]: true, 65 [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, 66 [FuseV1Options.EnableNodeCliInspectArguments]: false, 67 [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, 68 [FuseV1Options.OnlyLoadAppFromAsar]: true, 69 }), 70 ], 71 }; 72 73 export default config;