# Standalone electron-builder config for the "Light" Windows target: Electron # client + UI, no bundled node. Deliberately NOT layered onto package.json's # `build` field -- passed via `electron-builder --config `, which # reads ONLY this file (app-builder-lib/out/util/config/load.js's getConfig: # a given configPath replaces package.json's own "build", it does not merge # with it). That is what keeps Light's extraResources from ever accidentally # inheriting Full's frozen daemon and its two service scripts through some # array-merge surprise -- there is nothing to merge. # # Invoked from packages/meshbay-client (see build-win-light.ps1), so every # relative path below resolves the same way package.json's `build` field's # already do. # # See C:\Users\admin\devel\light-client.md for the evaluation this # implements. appId: org.meshbay.client.light productName: MeshBay Light directories: # Full's own build lives in dist/ -- a separate output dir means the two # targets never race on, or clobber, each other's files. output: dist-light files: - src/** - ui/** win: target: nsis icon: build/icon.ico artifactName: "MeshBay-Light-Setup-${version}.${ext}" extraResources: # firewall.ps1 needs no Light-specific fork: `add` already does # `if (-not (Test-Path $r.Path)) { skip }` per rule, and the "MeshBay # Node" rule's target -- the frozen daemon, inside the folder this # config never ships -- simply is not here. One script, one source of # truth; it just silently adds the 3 rules that apply (client WebRTC # ICE + the 2 LAN-casting rules) and logs the node rule as skipped. - from: ../../packaging/win/firewall.ps1 to: firewall.ps1 nsis: oneClick: false perMachine: false allowElevation: false allowToChangeInstallationDirectory: true createDesktopShortcut: true createStartMenuShortcut: true deleteAppDataOnUninstall: false runAfterFinish: true # Resolved against buildResourcesDir (build/), same as Full's implicit # default of build/installer.nsh -- see platformPackager.js's getResource. include: installer-light.nsh