1

I am building an ElectronJS desktop app that will look similar to the image below with a sidebar of tools to click on and a right panel to load them into.

I want each tool to be a plugin so I can easily create/add/remove tools from the app

When clicking a tool in the sidebar it will load the plugins settings and files and run functions to build the content on the right.

Ass some plugins will be large apps I do not want to load them all and bogg down memory.

Is there a way to load each plugin tool in the right panel as its own process and then terminate the process and release memory used by that plugin once a new plugin tool is clicked on and loaded into the content panel

enter image description here

JasonDavis
  • 48,204
  • 100
  • 318
  • 537

1 Answers1

1

You can create a worker with electron-worker and use it whenever you click on one of the tabs.

You can create a new BrowserWindow with the show option to false. It will then act as a new process. Link to the article

You can use the ipcRenderer to contact the ipcMain to then fork a plugin. See Node.js fork

Useful electron article

See Multithreading in electron if performance is a issue.

FYI Differences between process and a thread

Dany Gagnon
  • 102
  • 1
  • 9