gpt4 book ai didi

javascript - Electron.JS + devtoolsinstaller : 'BrowserWindow.addDevToolsExtension' is deprecated and will be removed. 请改用 'session.loadExtension'

转载 作者:行者123 更新时间:2023-12-01 15:08:43 24 4
gpt4 key购买 nike

将我的 Electron 应用程序从 Electron 8.2.5 更新到 9.0.0 后,终端中开始出现以下错误:

[1] (electron) 'BrowserWindow.addDevToolsExtension' is deprecated and will be removed. Please use 'session.loadExtension' instead.
[1] Added Extension: [object Object]
[1] (electron) 'BrowserWindow.getDevToolsExtensions' is deprecated and will be removed. Please use 'session.getAllExtensions' instead.
[1] Added Extension: [object Object]

我的 Electron 应用程序使用 electron-devtools-installer 在 Electron 应用程序加载后安装 React Developer Tools 和 Redux DevTools。

我们如何使用 session.loadExtensionsession.getAllExtensions在 Electron 9 中正确安装 devtools?
const electron = require("electron");
const app = electron.app;
const path = require("path");
const isDev = require("electron-is-dev");
let mainWindow;
const BrowserWindow = electron.BrowserWindow;

const installExtensions = async () => {
const { default: installExtension, REACT_DEVELOPER_TOOLS, REDUX_DEVTOOLS } = require('electron-devtools-installer');

const extensions = [REACT_DEVELOPER_TOOLS, REDUX_DEVTOOLS];
for (const extension of extensions) {
try {
const name = await installExtension(extension);
console.log(`Added Extension: ${name}`);
} catch (e) {
console.log('An error occurred: ', err);
}
}
}

...

app.on("ready", async () => {
createWindow();

if (isDev) {
await installExtensions();
mainWindow.webContents.on("did-frame-finish-load", () => {
mainWindow.webContents.once("devtools-opened", () => {
mainWindow.focus();
});
mainWindow.webContents.openDevTools({
mode: 'undocked'
});
});
}
});

最佳答案

关于日志错误:

[1] Added Extension:  [object Object]

我遇到了同样的问题。 installExtension实际上返回扩展对象,您可以通过以下方式获取扩展名称:


const installedExt = await installExtension(extension);
console.log(`Added Extension: ${installedExt.name}`);

关于弃用警告:
[1] (electron) 'BrowserWindow.addDevToolsExtension' is deprecated and will be removed. Please use 'session.loadExtension' instead.

electron-devtools-installer应更新以支持注册开发工具的新方法,如: Electron API docs for devtools extension 中所述

例子:

const { app, BrowserWindow, session } = require('electron')
const mainWindow = new BrowserWindow({...})

const ext = await session.defaultSession.loadExtension('/path/to/unpacked/chrome-ext')

我会尝试为这个包做一个 PR 来修复弃用警告。

请让我知道这可不可以帮你。

关于javascript - Electron.JS + devtoolsinstaller : 'BrowserWindow.addDevToolsExtension' is deprecated and will be removed. 请改用 'session.loadExtension',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61894248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com