2

I'm having an issue where I'm getting a TypeError: fs.existsSync is not a function error when my React App loads.

I'm trying to add functionality to my custom MacOS buttons, however, when I seem to import {remote} from 'electron', I get that error.

This is the component source code: https://sourceb.in/1ffad505cd.jsx This is the error generated in the console: https://sourceb.in/8c01058284.txt

It looks to be an Electron issue but I can't seem to figure out why.

Any help or advice would be much appreciated.

Vidsify
  • 57
  • 1
  • 1
  • 10

2 Answers2

8

I was facing the same problem and I've spend half of my day looking for the solution Instead of importing or requiring electron in the App.js as

import * as electron from 'electron'

OR

const electron = require("electron")

Go ahead and import electron in your App.js as follows using the window object

const electron = window.require("electron")
crispengari
  • 7,901
  • 7
  • 45
  • 53
4

I was found this issue : https://github.com/electron/electron/issues/7300

Can you change electron import like this:

const electron = window.require('electron') and use : electron.remote

  • 5
    Its saying ```TypeError: window.require is not a function``` – Vidsify Dec 25 '19 at 17:07
  • Create window like this `mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } })` – tpikachu Dec 25 '19 at 19:07
  • Did you add webPreferences with nodeIntegration when your BrowserWindow is being created? – tpikachu Dec 25 '19 at 19:08
  • Must I have missed that part. So it's now working but I am having issues changing back from fullscreen mode to maximized mode. Any ideas? ```macButtonsMaximise = () => { const currentWindow = electron.remote.getCurrentWindow() if (currentWindow.isMaximized) { currentWindow.setFullScreen(true) } else { currentWindow.setFullScreen(false) } }``` – Vidsify Dec 25 '19 at 21:46
  • Can yo tell me , what did you see for currentWindow on console when you change back from fullscreen mode to maximized mode. – Emre Gürbulak Dec 26 '19 at 11:07
  • Note, that set-in preference nodeIntegration to true (as mentioned @tpikachu) is against the electron's security guide. https://electronjs.org/docs/tutorial/security#2-do-not-enable-nodejs-integration-for-remote-content – uhetz Apr 22 '21 at 08:54
  • I did exactly same as above still getting Uncaught TypeError: window.require is not a function – rsp Jun 09 '22 at 18:03