Build Setup
# install dependencies
npm install
# serve with hot reload (Vite dev server + Electron)
npm run dev:vite
# serve with hot reload (Webpack dev server + Electron, legacy)
npm run dev
# build electron application for production
npm run build:vite
# run unit tests (Vitest)
npm run test:vitest:ci
# run unit tests with UI
npm run test:vitest:ui
# lint all JS/Vue/TS files in `src/`
npm run lint
Windows rsync
On Windows, rsync and the required Cygwin DLLs are bundled with the application — no manual installation is needed. The binaries are included for both 64-bit and 32-bit Windows in the utils/ directory and are packaged into the installer automatically.
The bundled rsync is located at runtime in the app’s resources/utils/windows64/ (or windows32/) directory. Scion adds this to the PATH automatically.
This project was originally generated with electron-vue@ef811ba using vue-cli. It has since been migrated to Vue 3 Composition API with TypeScript.
How to embed code-signing certificate in CI
https://felixrieseberg.com/codesigning-electron-apps-in-ci/
- run the below code to generate Base64 string of your certificate
$file = './cert.p12' $b64 = [Convert]::ToBase64String([IO.File]::ReadAllBytes($file)) Write-Host $b64 - copy the output string and paste it into a CI/CD variable
- make run.ps1
if (Test-Path Env:\WINDOWS_CERTIFICATE_P12) { # Which directory are we in right now? $workingDirectory = Convert-Path (Resolve-Path -path ".") # Absolute path to the certificate file we'll create $filename = "$workingDirectory\cert.p12" # Turn our base64 environment variable into usable bytes $bytes = [Convert]::FromBase64String($env:WINDOWS_CERTIFICATE_P12) # Then, write them to disk [IO.File]::WriteAllBytes($filename, $bytes) # Finally, set the WINDOWS_CERTIFICATE_FILE environment variable $env:WINDOWS_CERTIFICATE_FILE = $filename }