闽公网安备 35020302035485号

很平常的一个单页应用。我们将其放在新建 electron 项目根目录下,以备后用。
"make-win": "npx electron-packager ./ custom-package-name --platform=win32 --arch=x64 --out=jimmy-dist --overwrite --icon=./static/logo.ico --ignore='out|README.md|Jenkinsfile'"下面我们来解析下:
packagerConfig: {
asar: true,
icon: path.resolve(__dirname, 'static/logo.ico') // build app icon
}
3. 自定义菜单栏// create a custom menu
const createCustomMenu = () => {
const template = [
{
label: '', // for project title tag placeholder
},
{
label: '菜单',
submenu: [
{
label: '刷新',
click: () => {
BrowserWindow.getFocusedWindow().reload();
}
},
{
label: '返回',
click: () => {
if (mainWindow && mainWindow.webContents.canGoBack()) {
mainWindow.webContents.goBack();
}
}
},
{
label: '关闭',
click: () => {
app.quit();
}
}
]
},
{
label: '调试',
submenu: [
{
label: '控制台',
click: () => {
BrowserWindow.getFocusedWindow().webContents.openDevTools();
}
}
]
}
];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
}
上面我们设置了 菜单 和 调试 的菜单。
// 开启服务
const triggerServer = (host, port, directory) => {
const server = createServer({
root: path.join(__dirname, directory) // 指定服务器根目录
});
// 堆代码 duidaima.com
server.listen(port, host, () => {
console.log(`Server running at http://${host}:${port}/`)
})
return server;
}
上面我们封装了个开发服务的方法,方便多个服务开启。我们只要传入 host,port 和 directory (打包文件的目录)即可。const { createServer } = require('http-server');
app.whenReady().then(() => {
const server1 = triggerServer("localhost", "8081", "dist");
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
webSecurity: false
},
width: 800,
height: 600,
title: 'ElectronDist',
icon: path.join(__dirname, './static/logo.png') // for window platform
});
if(process.platform === 'darwin') { // mac platform
app.dock.setIcon(path.join(__dirname, './static/logo.png'))
}
mainWindow.loadURL("http://localhost:8081")
app.on('before-quit', () => { // 记得关闭
server1.close();
});
})
在 before-quite 钩子函数,即退出之前,即可关闭服务。