Почему упакованное приложение Electron дает сбой из-за того, что Menu.getApplicationMenu() возвращает ноль при запуске его с электроном. Это хорошо?
Я получаю странную ошибку при запуске упакованного приложения Electron в Windows 10.
Когда я нажимаю Ok на этой ошибке, приложение загружается, но без меню. Если я запускаю то же самое приложение, используя electron .
работает отлично, есть меню.
Ошибка происходит здесь:
var filemenu = Menu.getApplicationMenu().items[0].submenu;
filemenu.items[0].visible = false;
filemenu.append(new MenuItem({ label: 'Build Project', click: function () { buildProject(); } }));
Я пытаюсь отредактировать меню "Файл" по умолчанию и добавить пункт "Создать проект".
Это моя первая попытка упаковать приложение Electron, поэтому я приветствую любые отзывы о том, что пошло не так?
1 ответ
Решение
Кажется, что меню по умолчанию не добавляется в приложение при работе.
Решение состоит в том, чтобы проверить, если вы находитесь в разработке:
https://www.npmjs.com/package/electron-is-dev
// Check if we are in development
var isDev = require('electron-is-dev');
Если в производстве, вы должны построить меню с нуля.
if(isDev){
// In development
// modify existing menu
}else{
// In production
// construct menu from scratch
var template = [
{
label: "File",
submenu: [
{
label: "Exit",
click: function () { quit(); }
}
]
},
{
label: "Project",
submenu: [
{
label: "Delete",
click: function () { deleteProject(); }
},
{
label: "Build",
click: function () { buildProject(); }
}
]
}
];
// build menu from template
var menu = Menu.buildFromTemplate(template);
// set menu for main window
mainWindow.setMenu(menu);
};