Przejdź do głównej zawartości

Desktop Builds

Building desktop applications for Windows, macOS, and Linux.

Build Tools

ToolPurpose
NXTask orchestration and build
electron-builderPackaging and distribution
Angular CLIFrontend build
TypeScriptCompilation

Build Process

1. TypeScript Compilation (core packages)
2. Angular Build (desktop UI)
3. NestJS Build (embedded API, for server apps)
4. Electron Build (packaging)
5. Code Signing (platform-specific)
6. Publishing (GitHub Releases)

Build Commands

Desktop Timer

# Development
yarn start:desktop-timer

# Production build
yarn build:desktop-timer

# Package for distribution
yarn package:desktop-timer

Desktop Server

# Development
yarn start:server

# Production build
yarn build:server

# Package for distribution
yarn package:server

Output Formats

PlatformFormatExtension
WindowsNSIS installer.exe
WindowsPortable.exe
macOSDMG.dmg
macOSpkg.pkg
LinuxAppImage.AppImage
LinuxDEB.deb
LinuxRPM.rpm

electron-builder Configuration

# electron-builder.yml
appId: com.ever.gauzy.desktop.timer
productName: Gauzy Desktop Timer

directories:
output: dist/packages/desktop-timer

files:
- dist/**/*
- node_modules/**/*
- package.json

win:
target:
- nsis
- portable
icon: assets/icons/icon.ico

mac:
target:
- dmg
- pkg
icon: assets/icons/icon.icns
hardenedRuntime: true
entitlements: build/entitlements.mac.plist

linux:
target:
- AppImage
- deb
icon: assets/icons
category: Office

Code Signing

Windows

Requires an Authenticode certificate:

CSC_LINK=path/to/certificate.pfx
CSC_KEY_PASSWORD=certificate-password

macOS

Requires Apple Developer ID and notarization:

CSC_LINK=path/to/certificate.p12
CSC_KEY_PASSWORD=certificate-password
APPLE_ID=your-apple-id@example.com
APPLE_ID_APP_PASSWORD=app-specific-password
APPLE_TEAM_ID=your-team-id