Search code examples
javascriptnode.jselectronelectron-builderwiki.js

Electron: Crash after build exe


I am tring merge wiki.js with electron
and, I can make simple electron application as below code

main.js

const { app, BrowserWindow } = require('electron');
const path = require('path')

var winGlobal;

// This will run express server with port 3000 within 3~6 seconds
require('./server/index.js')

// load the url after 9 seconds.
setTimeout(() => winGlobal.loadURL('http://localhost:3000'), 9000);

function createWindow() {
    const win = new BrowserWindow({
        width: 1200,
        height: 900,
        webPreferences: {
            //   preload: path.join(__dirname, 'preload.js')
        }
    })
    winGlobal = win;
}

app.whenReady().then(() => {
    createWindow()

    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) {
            createWindow()
        }
    })
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})

package.json

{
    ...
    "main": "main.js"
    ...
    "build": {
        "productName": "wiki.js-electron",
        "appId": "com.electron.wiki",
        "directories": {
          "output": "build"
        },
        "asar": true
    },

    "dependencies": {
        ...
        "express": "4.17.1",
        "sqlite3": "5.0.0",
        ...
    }
    "devDependencies": {
        ...
        "electron": "^12.0.2",
        "electron-builder": "^22.10.5",
        ...
    }
}

And, I can run the current project with npx electron . Screen

To build exe, I can build with npx electron-build, and new exe file is generated without error log. Screen2

but, the exe is crash without any error.

How I can fix this?


Full Source code Github: https://github.com/nkhs/wiki.js-electron
Built exe: https://wetransfer.com/downloads/535a59714d4d957f478c14816ee0142e20210330143018/0d5cbe


Solution

  • I Found Solution Instead of running with a mouse double click at File Explorer, I used windows command prompt to run exe, and, from there, I can find error logs.

    So, I found: the some relative path is not working, because, the electron pack source code with asar.

    and, some file operate is not working, etc fs.read, fs.readDir.

    Cannot access files inside asar archive in electron app ,


    So, I removed this problem.