User Tools

Site Tools


guida_operativa_per_creare_applicazioni_npm

This is an old revision of the document!


Guida operativa per creare applicazioni npm desktop con Electron, Vite ed electron-builder

Base di partenza: configurazione `package.json` in stile LibrePM

1. Scopo della guida

Questa guida spiega come usare una configurazione npm + Electron + Vite + electron-builder simile a quella del progetto LibrePM per creare nuove applicazioni desktop che:

  • si sviluppano con tooling npm moderno
  • usano una UI web locale renderizzata in Electron
  • generano build desktop multipiattaforma
  • producono anche pacchetti .deb installabili su Debian/Ubuntu e derivate in modo ordinato
  • possono includere anche risorse esterne, ad esempio un backend `.jar`, binari, template, file statici o altri asset di runtime

L’obiettivo non è solo “far partire Electron”, ma usare una struttura replicabile per nuovi progetti con una pipeline di build pulita, comprensibile e pronta per crescere.

2. Cosa fa questa configurazione e perché è una buona base

Il `package.json` di LibrePM implementa una pipeline molto concreta:

  • Vite costruisce il frontend
  • *Electron avvia l’app desktop * electron-builder impacchetta l’app per macOS, Windows e Linux * la build desktop include anche risorse extra esterne al bundle frontend * su Linux sono esplicitati i target `AppImage`, `snap` e `deb` (è possibile il `flatpak` ma non è molto stabile) * per Linux viene personalizzato anche il blocco `desktop`, utile per il file `.desktop` così da permettere l'inserimento di icone e altri oggetti utili alla build * in LibrePM la build completa lancia prima il backend Java con `gradlew bootJar`, poi il frontend Vite, poi il packaging Electron * NOTA BENE: il backend Java può essere sostituito con uno Python/Go/altri linguaggi a scelta, purché si espliciti nel pacchetto e si includa poi tutto il necessario In pratica è una soluzione ideale quando vuoi costruire una desktop app npm-based ma con capacità più enterprise rispetto a una semplice web app. ===== 3. Anatomia della configurazione ===== Di seguito i punti più importanti della configurazione di partenza e il loro significato operativo ==== 3.1 Metadati di base ==== <code> ```json { “name”: “nometuaapp-desktop”, “version”: “0.1.0”, “description”: “NomeTuaApp - Descrizione”, “type”: “module”, “main”: “electron/main.cjs” } ``` </code> ==== Perché conta ==== * `name` influenza il nome tecnico del pacchetto * `version` viene usata anche negli artefatti prodotti * `description` aiuta packaging e identificazione * `type: “module”` abilita l’uso di ESM nel progetto Node lato tooling * `main` indica l’entrypoint Electron principale ==== Nota importante ==== In questa configurazione il progetto usa ESM a livello package ma il processo principale Electron è in CommonJS con file `.cjs` È una scelta pratica e sensata quando vuoi: * tooling moderno lato frontend * meno attrito nel bootstrap Electron * compatibilità elevata con dipendenze e script di runtime ===== 4. Gli script che rendono la pipeline riusabile ===== Script presenti**
```json
"scripts": {
  "dev": "concurrently -k \"vite --host 127.0.0.1\" \"wait-on http://127.0.0.1:5173 && electron .\"",
  "dev:renderer": "vite",
  "dev:electron": "wait-on http://localhost:5173 && electron .",
  "build": "vite build",
  "dist": "cd .. && ./gradlew bootJar && cd desktop && vite build && electron-builder",
  "preview": "vite preview"
}
```
guida_operativa_per_creare_applicazioni_npm.1775115101.txt.gz · Last modified: 2026/04/02 09:31 by team