Browse Source
- Replace manual CSS injection hack with Vite plugin - Configure Vite to handle both main process and renderer builds - Update build scripts to work with proper Vite output structure - Remove fix-inject-css.js post-build script - Update BUILDING.md documentation - Add build-modernization-context.md for future reference Technical changes: - vite.config.electron.mts: Add electron-css-injection plugin and proper output config - scripts/build-electron.js: Simplify to work with Vite-generated files - BUILDING.md: Update Electron build documentation - doc/build-modernization-context.md: Document context and decisions Security/maintenance improvements: - Eliminate manual file manipulation hacks - Ensure deterministic, reproducible builds - Centralize build logic in Vite configuration - Improve developer experience and CI/CD compatibility Author: Matthew Raymerstreamline-attempt
6 changed files with 206 additions and 99 deletions
@ -0,0 +1,51 @@ |
|||||
|
# TimeSafari Build Modernization Context |
||||
|
|
||||
|
**Author:** Matthew Raymer |
||||
|
|
||||
|
## Motivation |
||||
|
- Eliminate manual hacks and post-build scripts for Electron builds |
||||
|
- Ensure maintainability, reproducibility, and security of build outputs |
||||
|
- Unify build, test, and deployment scripts for developer experience and CI/CD |
||||
|
|
||||
|
## Key Technical Decisions |
||||
|
- **Vite is the single source of truth for build output** |
||||
|
- All Electron build output (main process, preload, renderer HTML/CSS/JS) is managed by `vite.config.electron.mts` |
||||
|
- **CSS injection for Electron is handled by a Vite plugin** |
||||
|
- No more manual HTML/CSS edits or post-build scripts |
||||
|
- **Build scripts are unified and robust** |
||||
|
- Use `./scripts/build-electron.sh` for all Electron builds |
||||
|
- No more `fix-inject-css.js` or similar hacks |
||||
|
- **Output structure is deterministic and ASAR-friendly** |
||||
|
- Main process: `dist-electron/main.js` |
||||
|
- Preload: `dist-electron/preload.js` |
||||
|
- Renderer assets: `dist-electron/www/` (HTML, CSS, JS) |
||||
|
|
||||
|
## Security & Maintenance Checklist |
||||
|
- [x] All scripts and configs are committed and documented |
||||
|
- [x] No manual file hacks remain |
||||
|
- [x] All build output is deterministic and reproducible |
||||
|
- [x] No sensitive data is exposed in the build process |
||||
|
- [x] Documentation (`BUILDING.md`) is up to date |
||||
|
|
||||
|
## How to Build Electron |
||||
|
1. Run: |
||||
|
```bash |
||||
|
./scripts/build-electron.sh |
||||
|
``` |
||||
|
2. Output will be in `dist-electron/`: |
||||
|
- `main.js`, `preload.js` in root |
||||
|
- `www/` contains all renderer assets |
||||
|
3. No manual post-processing is required |
||||
|
|
||||
|
## Customization |
||||
|
- **Vite config:** All build output and asset handling is controlled in `vite.config.electron.mts` |
||||
|
- **CSS/HTML injection:** Use Vite plugins (see `electron-css-injection` in the config) for further customization |
||||
|
- **Build scripts:** All orchestration is in `scripts/` and documented in `BUILDING.md` |
||||
|
|
||||
|
## For Future Developers |
||||
|
- Always use Vite plugins/config for build output changes |
||||
|
- Never manually edit built files or inject assets post-build |
||||
|
- Keep documentation and scripts in sync with the build process |
||||
|
|
||||
|
--- |
||||
|
This file documents the context and rationale for the build modernization and should be included in the repository for onboarding and future reference. |
Loading…
Reference in new issue