0

在 Windows 10 上运行打包的 Electron 应用程序时出现奇怪的错误。 在此处输入图像描述

当我在此错误上按确定时,应用程序启动,但没有菜单。如果我使用electron .它运行相同的应用程序可以完美运行,它有一个菜单。

错误发生在这里:

var filemenu = Menu.getApplicationMenu().items[0].submenu;
filemenu.items[0].visible = false;
filemenu.append(new MenuItem({ label: 'Build Project', click: function () { buildProject(); } }));

我正在尝试编辑默认的文件菜单并添加一个“构建项目”项。

这是我第一次尝试打包一个 Electron 应用程序,所以我欢迎任何关于出了什么问题的反馈?

4

1 回答 1

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);
};
于 2018-01-13T12:24:05.710 回答