Articoli correlati

4 Comments

  1. 1

    Danilo

    Ciao e grazie mille per questo articolo.
    Con estrema semplicità hai spiegato come integrare una applicazione react in electron.
    Ci sono numerosi tutorial che spiegano come fare ma sono molto più complessi e non arrivano direttamente al punto come hai fatto tu con questo articolo.

    Ne approfitto per segnalarti che lanciando lo script di build vengono restituiti alcuni errori:

    1) nello script “build”: “npm run react-build && npm run electron:build” andrebbe cambiato il nome dello script react-build che viene richiamato in react:build altrimenti non lo trova

    2) Mi compaiono in oltre questi due errori:

    Package “electron” is only allowed in “devDependencies”. Please remove it from the “dependencies” section in your package.json.
    Package “electron-builder” is only allowed in “devDependencies”. Please remove it from the “dependencies” section in your package.json.

    Ho risolto spostando quei package nella sezione devDependencies

    Nonostante la build arrivi fino in fondo quando avvio il .exe mi si apre la finestra di electron ma senza nessun contenuto.

    Guardando nel developer tool trovo questo messaggio di errore:

    You need to enable JavaScript to run this app.

    e nella console questi errori:

    main.8c8b27cf.chunk.css:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
    2.0ded619b.chunk.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
    main.499a87ed.chunk.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND

    Hai una idea di come sistemare?

    Grazie mille,
    Danilo.

    Reply
    1. 1.1

      Stefano Pascazi

      Ciao Danilo e grazie per il tuo feedback. Mi fa davvero piacere.
      Il comando di build, è un mio refuso che ti ringrazio di avermi segnalato.
      I file packages di electron per essere buildati nella maniera corretta devono essere posizionati in devDependencies come segnalato da node durante la tua build, quindi hai fatto benissimo a correggere.
      Per quanto riguarda la build che non ti trova i file compilati in js di react è molto importante stare attenti a due semplici passaggi:
      1) Che il comando di build rispetti la compilazione prima di react e successivamente di electron: “npm run react:build && npm run electron:build”
      2) Che tu abbia indicato correttamente la condizione nel file electron.js nella cartella public:
      /**
      * Controllo di versione
      */
      mainWindow.loadURL(
      isDev ? "http://localhost:3000" : `file://${path.join(__dirname, "../build/index.html")}`
      );

      In ultimo, di effettuare un controllo sul tipo di versione che hai durante la build.
      Nel caso, puoi impostarti un file .env in cui indichi la versione development o production a seconda dei casi.
      Fammi sapere se risolvi.
      Ciao.

      Reply
      1. 1.1.1

        Stefano

        Ciao,
        Intanto complimenti per la guida, davvero utile.

        Mi ritrovo però con lo stesso errore di Danilo e non credo che sia un discorso di variabili d’ambiente.
        Infatti il problema è proprio nel caso: `file://${path.join(__dirname, “../build/index.html”)}`
        Per conferma, ho fatto questi test che mi hanno portato agli stessi errori di “Failed to load resource: net::ERR_FILE_NOT_FOUND”:
        – ho aperto direttamente il file “build/index.html”;
        – ho scambiato lo statement del caso ELSE con quello IF, quindi facendo aprire “build/index.html” nel caso isDev.

        Hai idea di cosa possa trattarsi?

        Grazie in anticipo

        Reply
  2. 2

    Stefano

    Ciao a tutti,

    la soluzione agli errori “Failed to load resource: net::ERR_FILE_NOT_FOUND” è inserire nel package.json la seguente riga:
    “homepage”: “.”,

    In questo modo nella folder “/build” il file index.html risolve tutti i file mancanti e lo stesso succede lanciando l’app dal file .exe dentro la folder “/dist”.

    Un saluto,
    Stefano

    Reply

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


© Gruppo Maggioli Tutti i diritti riservati. Maggioli Spa - P.IVA 02066400405