Chlorine
Performance optimizations in Reagent – part 2
Have I mentioned that it’s a nightmare to install React Devtools in Electron? Turns out, it’s worth it. But it’s still a pain. If you want to try, you’ll need to first install the extension in a chrome-based browser (like Brave, the one I use) and then install it by code. At Chlorine, what I did was to copy the whole extension folder to a devtools
directory and then changed the script to load electron to the script below (see the BrowserWindow.addDevToolsExtension
):
const path = require('path') const {app, BrowserWindow} = require('electron') app.on('ready', () => { let browser = new BrowserWindow({ width: 900, height: 600, webPreferences: {nodeIntegration: true}}) browser.loadURL(path.join('file://', __dirname, '/index.html')) BrowserWindow.addDevToolsExtension('./devtools') })
Originally, the React Devtools was installed at ~/.config/BraveSoftware/Brave-Browser/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/4.21.0_0
(tilde is my home folder). If you’re trying to install on Atom editor, you’ll have to open developer tools and issue the following script:
r = require('remote') r.BrowserWindow.addDevToolsExtension('./devtools') // or the right directory
This command will fail, but somehow when you reload Atom, the React Devtools will be there. There’s only one feature that I use – highlight which elements were updated. And that’s where our performance tuning starts again.
(more…)