Electron: TypeError: BrowserWindow.addDevToolsExtension ليس دالة

تم إنشاؤها على ١٠ فبراير ٢٠٢٠  ·  7تعليقات  ·  مصدر: electron/electron

تفاصيل القضية

  • إصدار الإلكترون:

    • 8.0.0

  • نظام التشغيل:

    • Windows 10 Pro (1909) x64 OS Build 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.

@ stevenroussey-privicy نحن قادرون على تثبيت امتدادات التفاعل والإعادة في تطبيقاتنا عبر أداة تثبيت الحزمة صممها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)

يبدو أنه يتم إنشاء علامات تبويب الامتدادات بعد تحميل الملحقات في 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

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

نحن نستخدم نفس طريقة المثبت. يتم تثبيته بشكل جيد ، لكنه لن يعمل. نفس الأخطاء. حتى لو فتحت أدوات devtools يدويًا ، فهي ليست مشكلة توقيت هناك.

نحن نستخدم نافذة شاشة البداية. مما يمكنني قوله ، إنه يعمل بشكل جيد في النافذة الأولى التي تم إنشاؤها ، لكنه فشل في النوافذ الأخرى. يمكن لأي شخص آخر التحقق؟

قد تكون مرتبطة بـ https://github.com/electron/electron/issues/23383

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات