Principle:Cypress io Cypress Electron Binary Packaging
| Knowledge Sources | |
|---|---|
| Domains | Build, Release_Engineering |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
A cross-platform binary packaging mechanism that bundles the Cypress application with Electron into platform-specific executables for macOS, Linux, and Windows.
Description
Electron binary packaging transforms the Cypress Node.js/Electron application into distributable platform-specific binaries. The process uses electron-builder to bundle the application code with an Electron runtime, producing a macOS .app bundle, Linux unpacked directory, or Windows unpacked directory. Post-packaging hooks generate V8 snapshots for performance and sign binaries for trust.
The packaging configuration specifies which files to include, platform-specific settings, and hook scripts for post-processing (after-pack for snapshots, after-sign for notarization).
Usage
Use this principle during the Cypress release process to produce the distributable binaries that users download via npm install cypress.
Theoretical Basis
Packaging Pipeline:
1. Build all packages: lerna run build
2. electron-builder packages app:
a. Bundle app code + Electron runtime
b. afterPack hook → V8 snapshots + dependency cleanup
c. afterSign hook → macOS notarization
3. Output: Platform-specific binary
- macOS: Cypress.app
- Linux: linux-unpacked/
- Windows: win-unpacked/
4. Zip for distribution via CDN