Electron: TypeError : BrowserWindow.addDevToolsExtension์€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 02์›” 10์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: electron/electron

๋ฌธ์ œ ์„ธ๋ถ€ ์‚ฌํ•ญ

  • ์ „์ž ๋ฒ„์ „ :

    • 8.0.0

  • ์šด์˜ ์ฒด์ œ :

    • Windows 10 Pro (1909) x64 OS ๋นŒ๋“œ 18363.418

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘

React-Devtool ์„ค์น˜

์‹ค์ œ ํ–‰๋™

TypeError : BrowserWindow.addDevToolsExtension์€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ƒท

image

8-x-y bug platforwindows

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Devtron, React ๋ฐ Redux ํ™•์žฅ์€ ๋ชจ๋‘ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ์„ค์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

[electron] Added Extension: React Developer Tools
[electron] Added Extension: Redux DevTools
[electron] [41948:0228/141801.424392:ERROR:CONSOLE(1)] "Uncaught TypeError: Cannot read[electron] [41948:0228/141801.424392:ERROR:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'panels' of undefined", source: chrome-extension://redux-devtools/js/devtools.bundle.js (1)
[electron] [41948:0228/141801.512131:ERROR:CONSOLE(40)] "Uncaught TypeError: Cannot read property 'inspectedWindow' of undefined", source: chrome-extension://react-developer-tools/build/main.js (40)
[electron] Unable to create basic Accelerated OpenGL renderer.
[electron] Unable to create basic Accelerated OpenGL renderer.
[electron] Core Image is now using the software OpenGL renderer. This will be slow.

๋ชจ๋“  7 ๋Œ“๊ธ€

์‹œ๊ฐ„์„๋‚ด์–ด์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ํ•˜๊ณ  Electron์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์Šคํ„ฐ๊ฐ€ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ๋…๋ฆฝํ˜• ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๋”์šฑ ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ•ญ๋ชฉ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ์„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…Œ์Šคํ„ฐ๊ฐ€ ์ƒˆ๋กœ์šด ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ƒˆ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋„๋กํ•˜๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์ด์œ ๋กœ ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‘๋‹ต ํ•œ ํ›„ ํ›„์† ๋Œ“๊ธ€์— @ me๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๊ท€ํ•˜์˜ ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.
main.js์— ์Šค ๋‹ˆํŽซ์ด ํ•„์š”ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');
const url = require('url');
const scraper = require('./scraper.js');
const helpers = require('./electron/helpers.js');
const windowStateKeeper = require('electron-window-state');
const { autoUpdater } = require("electron-updater");

require('v8-compile-cache');
// for nodemon
process.env.IS_DEV ? require('electron-reload') : null;
// disable security warning
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true';

// Application already running, so we close now
if (!app.requestSingleInstanceLock()) {
  app.quit()
}

app.removeAllListeners('ready');

let mainWindow
function createWindow() {
  // check for uppdate
  autoUpdater.checkForUpdatesAndNotify();

  // Load the previous state with fallback to defaults
  let mainWindowState = windowStateKeeper({
    defaultWidth: 1100,
    defaultHeight: 600
  });
  mainWindow = new BrowserWindow({
    'x': mainWindowState.x,
    'y': mainWindowState.y,
    'width': mainWindowState.width,
    'height': mainWindowState.height,
    minWidth: 1100,
    minHeight: 500,
    backgroundColor: '#121212',
    frame: false,
    icon: __dirname + '../build/icon.png',
    webPreferences: {
      webSecurity: false,
      nodeIntegration: true,
      webviewTag: true
    },
  });
  // Let us register listeners on the window, so we can update the state
  // automatically (the listeners will be removed when the window is closed)
  // and restore the maximized or full screen state
  mainWindowState.manage(mainWindow);

  // http://localhost:3000
  const startUrl = process.env.ELECTRON_START_URL || url.format({
    pathname: path.join(__dirname, '../build/index.html'),
    protocol: 'file:',
    slashes: true,
  });

  mainWindow.loadURL(startUrl);
  // in dev mode
  if (process.env.ELECTRON_START_URL) {
    // open devTools
    mainWindow.webContents.openDevTools({ mode: 'undocked' });
  }
  // in build mode
  if (process.env.IS_DEV) {
    // close menubar
    mainWindow.setMenuBarVisibility(false);
  }

  //clear session + cookies on start to avoid blocking requests
  mainWindow.on('closed', () => {
    mainWindow = null
  });

  mainWindow.webContents.on('new-window', function (e, url) {
    e.preventDefault();
  })

  // Add React Devtool
  if (app.isReady() && process.env.ELECTRON_START_URL) {
    console.log('___INSTALL React Devtool_____')
    BrowserWindow.addDevToolsExtension("./extensions/react")
      .then(name => console.log('INSTALLING', name))
      .catch(err => console.log('Install React-Devtool err', err));
  }
}
app.setAppUserModelId('com.MyMovies.app');
app.on('ready', createWindow);
app.on('window-all-closed', () => {
  app.quit();
})

Devtron, React ๋ฐ Redux ํ™•์žฅ์€ ๋ชจ๋‘ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ์„ค์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

[electron] Added Extension: React Developer Tools
[electron] Added Extension: Redux DevTools
[electron] [41948:0228/141801.424392:ERROR:CONSOLE(1)] "Uncaught TypeError: Cannot read[electron] [41948:0228/141801.424392:ERROR:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'panels' of undefined", source: chrome-extension://redux-devtools/js/devtools.bundle.js (1)
[electron] [41948:0228/141801.512131:ERROR:CONSOLE(40)] "Uncaught TypeError: Cannot read property 'inspectedWindow' of undefined", source: chrome-extension://react-developer-tools/build/main.js (40)
[electron] Unable to create basic Accelerated OpenGL renderer.
[electron] Unable to create basic Accelerated OpenGL renderer.
[electron] Core Image is now using the software OpenGL renderer. This will be slow.

์šฐ๋ฆฌ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ์˜ ์• ํ”Œ ๋ฆฌ์ผ€์ด์…˜์— ๋ฐ˜์‘ํ•˜๊ณ  REDUX ํ™•์žฅ์„ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค @ stevenroussey์„-privicy ์ „์ž DevTools๋กœ-์„ค์น˜ @MarshallOfSound (๐Ÿ™ ๊ทธ ๋•๋ถ„์—)ํ•˜์ง€๋งŒ DevTools๋กœ ๋งŒ๋“ ์€ ์˜ค๋ฅ˜์˜ ๊ฐ™์€ ์ข…๋ฅ˜๋กœ, ๋•Œ๋กœ๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .. .

[35280:0324/122320.140:ERROR:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'panels' of undefined", source: chrome-extension://redux-devtools/js/devtools.bundle.js (1)
[35280:0324/122320.233:ERROR:CONSOLE(40)] "Uncaught TypeError: Cannot read property 'inspectedWindow' of undefined", source: chrome-extension://react-developer-tools/build/main.js (40)

Extension์ด BrowserWindow์—๋กœ๋“œ ๋œ ํ›„ ํ™•์žฅ ํƒญ์ด ์ƒ์„ฑ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฐฑ์—”๋“œ์—์„œ ์žก๋Š” ์œ ์ผํ•œ ์˜ค๋ฅ˜๋Š” ํฌ๋กฌ ์ €์žฅ์†Œ์™€ ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ ๋ฌธ์ œ์˜ ์›์ธ์€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Exception has occurred: Error
Error: ENOENT: no such file or directory, open "\AppData\Roaming\AppName\Chrome Storage\redux-devtools-sync.json"

did-frame-finish-load ์ด๋ฒคํŠธ์—์„œ devtools๋ฅผ ์—ฝ๋‹ˆ ๋‹ค.

win.webContents.on('did-frame-finish-load', () => {
  win.webContents.openDevTools();
});

์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ์„ค์น˜๋˜์ง€๋งŒ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜ค๋ฅ˜. devtools๋ฅผ ์ˆ˜๋™์œผ๋กœ ์—ด์–ด๋„ ํƒ€์ด๋ฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ์ฐฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ฒซ ๋ฒˆ์งธ ์ฐฝ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ฐฝ์—์„œ๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/electron/electron/issues/23383 ๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰