feat(config): add Electron Forge configuration for packaging and distribution, including support for multiple platforms and fuses plugin
This commit is contained in:
73
forge.config.js
Normal file
73
forge.config.js
Normal file
@@ -0,0 +1,73 @@
|
||||
const { FusesPlugin } = require('@electron-forge/plugin-fuses');
|
||||
const { FuseV1Options, FuseVersion } = require('@electron/fuses');
|
||||
|
||||
module.exports = {
|
||||
packagerConfig: {
|
||||
asar: {
|
||||
unpack: 'build/exe/**/*',
|
||||
},
|
||||
executableName: 'reticulum-meshchatx',
|
||||
name: 'Reticulum MeshChatX',
|
||||
appBundleId: 'com.sudoivan.reticulummeshchatx',
|
||||
icon: 'electron/build/icon',
|
||||
// osxSign: {}, // Uncomment and configure for macOS signing
|
||||
// osxNotarize: { ... }, // Uncomment and configure for macOS notarization
|
||||
},
|
||||
rebuildConfig: {},
|
||||
makers: [
|
||||
{
|
||||
name: '@electron-forge/maker-squirrel',
|
||||
config: {
|
||||
name: 'reticulum_meshchatx',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '@electron-forge/maker-zip',
|
||||
platforms: ['darwin'],
|
||||
},
|
||||
{
|
||||
name: '@electron-forge/maker-deb',
|
||||
config: {
|
||||
options: {
|
||||
maintainer: 'Sudo-Ivan',
|
||||
homepage: 'https://git.quad4.io/RNS-Things/MeshChatX',
|
||||
categories: ['Network'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '@electron-forge/maker-rpm',
|
||||
config: {},
|
||||
},
|
||||
{
|
||||
name: '@electron-forge/maker-flatpak',
|
||||
config: {
|
||||
options: {
|
||||
categories: ['Network'],
|
||||
runtime: 'org.freedesktop.Platform',
|
||||
runtimeVersion: '23.08',
|
||||
sdk: 'org.freedesktop.Sdk',
|
||||
base: 'org.electronjs.Electron2.BaseApp',
|
||||
baseVersion: '23.08',
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
plugins: [
|
||||
{
|
||||
name: '@electron-forge/plugin-auto-unpack-natives',
|
||||
config: {},
|
||||
},
|
||||
// Fuses are used to enable/disable various Electron functionality
|
||||
// at package time, before code signing the application
|
||||
new FusesPlugin({
|
||||
version: FuseVersion.V1,
|
||||
[FuseV1Options.RunAsNode]: false,
|
||||
[FuseV1Options.EnableCookieEncryption]: true,
|
||||
[FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
|
||||
[FuseV1Options.EnableNodeCliInspectArguments]: false,
|
||||
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
|
||||
[FuseV1Options.OnlyLoadAppFromAsar]: true,
|
||||
}),
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user