Introduction
NativePHP provides a comprehensive build system that transforms your Laravel application into production-ready native desktop applications. The build process handles everything from copying your application files to bundling PHP binaries and creating platform-specific installers.How Building Works
The build process involves several key steps:Prepare Build Directory
NativePHP creates a clean build directory and copies your application files, excluding development dependencies and sensitive files.
Environment Cleanup
Sensitive environment variables and development keys are removed from your
.env file for production distribution.Optimize Dependencies
Composer dependencies are optimized with
--no-dev flag, removing development packages to reduce bundle size.Build Targets
NativePHP supports building for multiple platforms and architectures:Windows
- x64 - 64-bit Windows applications
- Installer formats - NSIS installer with desktop shortcuts
macOS
- x64 - Intel-based Macs
- arm64 - Apple Silicon (M1/M2/M3)
- Installer formats - DMG disk images and .app bundles
Linux
- x64 - 64-bit Linux distributions
- arm64 - ARM-based Linux systems
- Installer formats - AppImage and .deb packages
Build Commands
NativePHP uses npm scripts defined in the Electron resources to handle building:All build commands use the
-p never flag to prevent automatic publishing. Use publish:* commands when ready to distribute.Build Output
Built applications are output to thenativephp/electron/dist directory in your Laravel application:
Build Directory Structure
During the build process, NativePHP creates a temporary build directory:The build directory is automatically cleaned before each build to ensure a fresh start.
Pre and Post Build Scripts
You can define custom scripts to run before and after the build process in yourconfig/nativephp.php:
File Exclusions
NativePHP automatically excludes certain files and directories from your build to reduce bundle size and improve security. See the Configuration page for details on customizing exclusions.Next Steps
Build Configuration
Configure build settings, file exclusions, and platform-specific options
Bundling Process
Understand how NativePHP bundles your application and dependencies
Code Signing
Sign your applications for macOS and Windows distribution
Auto-Updates
Configure automatic updates for your distributed applications