Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Process is not defined for Electron's Getting Started App [duplicate]

I am trying to get started with Electron. I was already able to run all simple examples. They all work as expected. When I try to follow the Quick Start Guide I experience the same issue as mentioned in this question: The app launches properly, but does not display the versions of node Chrome and Electron. When I look into the developing tools I see this error:

Uncaught ReferenceError: process is not defined
    at index.html:14

However, I have set nodeIntegration to true.

Why is it still not working?

Versions:

  • npm 7.6.3
  • node v14.16.0
  • chromium 89.0.4389.82

Operating System:

  • Ubuntu 20.04.2 LTS.

index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>

<body style="background: white;">
    <h1>Hello World!</h1>
    <p>
        We are using node
        <script>document.write(process.versions.node)</script>,
        Chrome
        <script>document.write(process.versions.chrome)</script>,
        and Electron
        <script>document.write(process.versions.electron)</script>.
    </p>
</body>

</html>

main.js

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

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  win.loadFile('index.html')
}

app.whenReady().then(createWindow)

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

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

package.json

{
  "name": "my-electron-app",
  "version": "0.1.0",
  "author": "username",
  "description": "My Electron app",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^12.0.0"
  }
}
like image 642
Hendrik Avatar asked Mar 13 '21 10:03

Hendrik


1 Answers

Try to set this value when creating your BrowserWindow:

webPreferences: { nodeIntegration: true, contextIsolation: false }

A new major Electron version has been released which broke the tutorial.
The specific breaking change is a new default value of contextIsolation flag.

For more details, see this GitHub issue.

like image 86
AMakarov Avatar answered Oct 16 '22 20:10

AMakarov