Files
crowd-funder-from-jason/BUILDING.md
Matthew Raymer d8c1a84cfe WIP (fix): improve electron build configuration and service worker handling
- Properly disable service workers in electron builds
- Add CSP headers for electron security
- Fix path resolution in electron context
- Improve preload script error handling and IPC setup
- Update build scripts for better electron/capacitor compatibility
- Fix router path handling in electron context
- Remove electron-builder dependency
- Streamline build process and output structure

This change improves the stability and security of electron builds while
maintaining PWA functionality in web builds. Service workers are now
properly disabled in electron context, and path resolution issues are
fixed.
2025-02-12 13:17:25 +00:00

2.5 KiB

Building TimeSafari

This guide explains how to build TimeSafari for different platforms.

Prerequisites

  • Node.js (LTS version recommended)
  • npm (comes with Node.js)
  • Git
  • For iOS builds: macOS with Xcode installed
  • For Android builds: Android Studio with SDK installed
  • For desktop builds: Additional build tools based on your OS

Initial Setup

  1. Clone the repository:

    git clone [repository-url]
    cd TimeSafari
    
  2. Install dependencies:

    npm install
    

Web Build

To build for web deployment:

  1. Run the production build:

    npm run build
    
  2. The built files will be in the dist directory.

  3. To test the production build locally:

    npm run serve
    

Desktop Build (Electron)

To build the desktop application:

  1. Run the Electron build:

    npm run build:electron
    
  2. The built files will be in dist-electron.

  3. To run the desktop app:

    electron dist-electron
    

Mobile Builds (Capacitor)

iOS Build

Prerequisites: macOS with Xcode installed

  1. Build the web assets:

    npm run build -- --mode capacitor
    
  2. Add iOS platform if not already added:

    npx cap add ios
    
  3. Update iOS project with latest build:

    npx cap sync ios
    
  4. Open the project in Xcode:

    npx cap open ios
    
  5. Use Xcode to build and run on simulator or device.

Android Build

Prerequisites: Android Studio with SDK installed

  1. Build the web assets:

    npm run build -- --mode capacitor
    
  2. Add Android platform if not already added:

    npx cap add android
    
  3. Update Android project with latest build:

    npx cap sync android
    
  4. Open the project in Android Studio:

    npx cap open android
    
  5. Use Android Studio to build and run on emulator or device.

Development

To run the application in development mode:

  1. Start the development server:
    npm run dev
    

Testing

Run local tests:

npm run test-local

Run all tests (includes building):

npm run test-all

Linting

Check code style:

npm run lint

Fix code style issues:

npm run lint-fix

Notes

  • The application uses PWA (Progressive Web App) features for web builds
  • Electron builds disable PWA features automatically
  • Build output directories:
    • Web: dist/
    • Electron: dist-electron/
    • Capacitor: dist-capacitor/