Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

REACT DEV TOOL need a reload to appear #244

Open
elvince opened this issue Feb 9, 2024 · 9 comments
Open

REACT DEV TOOL need a reload to appear #244

elvince opened this issue Feb 9, 2024 · 9 comments

Comments

@elvince
Copy link

elvince commented Feb 9, 2024

Hi all,

Thanks for the repo, it is quite straight forward to setup.

However, I can't get the tools to popup in the devtool page until I reload the main page.

If I await installExtension(REACT_DEVELOPER_TOOLS, true), the tools are not loaded at first launch, I need to reload them.
If I manually load them await session.defaultSession.loadExtension, evertyhing load fine from scratch.

Any idea how solve this?
Maybe a missing await in the installation process?
It seems to be a race condition.

Thanks

@JordanDC2
Copy link

JordanDC2 commented Feb 28, 2024

I am seeing this same issue as well with latest version of electron and electron-devtools-installer.

@vasilecampeanu
Copy link

I am seeing this same issue as well with latest version of electron and electron-devtools-installer.

Did you manage to find a fix?

@ehellman
Copy link

ehellman commented Mar 18, 2024

I am having this issue too.

session.defaultSession.getAllExtensions().map(e => {
  if (e.name === 'React Developer Tools') {
    session.defaultSession.loadExtension(e.path);
  }
});

This works, but should load automatically I think.

@pjmdesi
Copy link

pjmdesi commented Apr 12, 2024

Seeing the same issue here. I simply run a reload after a timeout and it seems to do the trick

DEV && setTimeout(() => {
    mainWindow.reload();
}, 500);

@maoryadin
Copy link

I am having this issue too.

session.defaultSession.getAllExtensions().map(e => {
  if (e.name === 'React Developer Tools') {
    session.defaultSession.loadExtension(e.path);
  }
});

This works, but should load automatically I think.

Why not just load all?

  session.defaultSession.getAllExtensions().map((e) => {
     session.defaultSession.loadExtension(e.path)
   })

@aymengraoui
Copy link

i cant make any extension appear no matter what i do im on electron 31 and i cant find any solution for this

@aluminum1
Copy link

Same issue as aymengraoui.

@danthegoodman
Copy link

I pasted this workaround and an explanation over in another issue: #238 (comment)

async function loadDevtools() {
  const edi = await import('electron-devtools-installer');
  const installExtension = edi.default.default;
  await installExtension(edi.REDUX_DEVTOOLS);
  await installExtension(edi.REACT_DEVELOPER_TOOLS);

  // hack because extension service workers aren't loaded until after first launch
  const win = new BrowserWindow({
    show: false,
    webPreferences: { devTools: true },
  });
  await win.loadURL('about:blank');
  win.webContents.openDevTools({ mode: 'detach', activate: false });
  await new Promise<void>((resolve, reject) => {
    let checksLeft = 300;
    const interval = setInterval(() => {
      const all = session.defaultSession.serviceWorkers.getAllRunning();
      if (Object.keys(all).length > 0) {
        clearInterval(interval);
        resolve();
      } else {
        checksLeft -= 1;
        if (checksLeft <= 0) {
          clearInterval(interval);
          reject(new Error('react dev tools failed to load a service worker'));
        }
      }
    }, 10);
  });
  win.close();
}

@aymengraoui
Copy link

Hi @danthegoodman
thanks for the workaround it didn't work for me, the problem with the workers i bumper the checks to 10000 and nothing i might dig into this workaround if i have time, for now i gave up on this i installed extensions i need globally and linked them to my app using urls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants