Files
nexusterm/electron-builder.yml
2026-09-17 16:16:44 +08:00

86 lines
2.6 KiB
YAML

appId: dev.ylhan.nexusterm
productName: NexusTerm
copyright: Copyright © 2026 ylhan
directories:
output: release
buildResources: build
files:
- out/**/*
- package.json
# Keep every native prebuild. electron-builder applies this file on Linux and
# Windows, and removing another platform's binary here also removes the one a
# cross-platform build needs. The small size saving is not worth a package
# that builds successfully and then fails on its target machine.
- '!node_modules/ssh2/lib/protocol/crypto/build/Release/obj/**'
# Native modules cannot be loaded from inside an asar archive.
#
# Unpack the WHOLE package, not just `**/*.node`. node-pty ships `spawn-helper`
# on macOS and Windows, a real executable loaded from disk rather than dlopen'd
# — if it stays inside the archive, the app works in dev and fails only once
# packaged, which is the worst way for it to fail. ssh2 turned out to carry
# `sshcrypto.node` as well, which is easy to miss because the library reads as
# pure JavaScript.
asarUnpack:
- node_modules/node-pty/**
- node_modules/better-sqlite3/**
- node_modules/ssh2/**
- node_modules/@serialport/**
# Deliberately off. These are all node-addon-api builds, so the binaries
# produced by `npm install` load unchanged in Electron's Node — verified by
# spawning a real PTY from inside Electron 44. Rebuilding would take time and
# risk replacing working binaries with differently-built ones, for no gain.
npmRebuild: false
win:
target:
- nsis
icon: build/icon.png
nsis:
oneClick: false
allowToChangeInstallationDirectory: true
createDesktopShortcut: true
createStartMenuShortcut: true
linux:
target:
- AppImage
- deb
category: Network
maintainer: ylhan <ylhan@example.com>
# Without this, desktop environments cannot tell which running window
# belongs to this .desktop entry, so the launcher shows a second icon
# instead of indicating the running app.
syncDesktopName: true
synopsis: SSH session manager
description: >
SSH session manager with a connection tree, tabbed terminals grouped by
host, port forwarding, a pinned local shell, and credentials held by the
system keyring.
# electron-builder generates the .desktop entry from these.
desktop:
entry:
Name: NexusTerm
Comment: SSH session manager
Keywords: ssh;terminal;shell;sftp;remote;
deb:
depends:
- libgtk-3-0
- libnotify4
- libnss3
- libxss1
- libxtst6
- xdg-utils
- libatspi2.0-0
- libsecret-1-0
# node-pty needs a working /dev/pts, which every normal desktop has.
- libuuid1
artifactName: ${productName}-${version}-${arch}.${ext}