mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
Fix Android Capacitor compatibility by downgrading tar to 6.2.1. Add Windows-specific icon file for Squirrel installer. Update electron-forge to 7.8.0 and change DMG format to ULFO for macOS Sequoia compatibility. Add retry logic for transient SSL errors on Mac Intel runners.
104 lines
2.5 KiB
JavaScript
104 lines
2.5 KiB
JavaScript
import { downloadIpfsClients } from './electron/before-pack.js';
|
|
|
|
const config = {
|
|
packagerConfig: {
|
|
name: '5chan',
|
|
executableName: '5chan',
|
|
appBundleId: '5chan.desktop',
|
|
icon: './public/icon', // electron-forge adds the correct extension per platform
|
|
|
|
// NOTE: asar is disabled because of a bug where electron-packager silently fails
|
|
// during asar creation with 5chan's large node_modules. The app works fine without it.
|
|
// TODO: investigate and fix the asar creation issue
|
|
asar: false,
|
|
|
|
// Exclude unnecessary files from the package
|
|
ignore: [
|
|
/^\/src$/,
|
|
/^\/public$/,
|
|
/^\/android$/,
|
|
/^\/\.github$/,
|
|
/^\/scripts$/,
|
|
/^\/\.git/,
|
|
/^\/\.plebbit$/,
|
|
/^\/out$/,
|
|
/^\/dist$/,
|
|
/^\/squashfs-root$/,
|
|
/\.map$/,
|
|
/\.md$/,
|
|
/\.ts$/,
|
|
/tsconfig\.json$/,
|
|
/\.oxfmtrc/,
|
|
/oxlintrc/,
|
|
/vite\.config/,
|
|
/forge\.config/,
|
|
/capacitor\.config/,
|
|
/\.env$/,
|
|
/\.DS_Store$/,
|
|
/yarn\.lock$/,
|
|
// Exclude build-time scripts from the package
|
|
/electron\/before-pack\.js/,
|
|
// kubo npm package creates symlinks that break build - exclude its bin dir
|
|
// (we download our own kubo binary in generateAssets hook)
|
|
/node_modules\/kubo\/bin/,
|
|
// Exclude .bin directories anywhere in node_modules (contain escaping symlinks)
|
|
/node_modules\/.*\/\.bin/,
|
|
/node_modules\/\.bin/,
|
|
/node_modules\/\.cache/,
|
|
],
|
|
},
|
|
|
|
rebuildConfig: {
|
|
force: true,
|
|
},
|
|
|
|
hooks: {
|
|
// Download IPFS/Kubo binaries before packaging
|
|
generateAssets: async () => {
|
|
console.log('Downloading IPFS clients...');
|
|
await downloadIpfsClients();
|
|
console.log('IPFS clients downloaded.');
|
|
},
|
|
},
|
|
|
|
makers: [
|
|
// macOS
|
|
{
|
|
name: '@electron-forge/maker-dmg',
|
|
platforms: ['darwin'],
|
|
config: {
|
|
name: '5chan',
|
|
icon: './public/icon.png',
|
|
format: 'ULFO',
|
|
},
|
|
},
|
|
{
|
|
name: '@electron-forge/maker-zip',
|
|
platforms: ['darwin'],
|
|
},
|
|
// Windows
|
|
{
|
|
name: '@electron-forge/maker-squirrel',
|
|
platforms: ['win32'],
|
|
config: {
|
|
name: '5chan',
|
|
setupIcon: './public/windows-icon.ico',
|
|
},
|
|
},
|
|
// Linux
|
|
{
|
|
name: '@reforged/maker-appimage',
|
|
platforms: ['linux'],
|
|
config: {
|
|
options: {
|
|
name: '5chan',
|
|
icon: './public/icon.png',
|
|
categories: ['Network'],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export default config;
|