Nodejs - 小型 Express 服务器 + trayicon + pkg
Posted
技术标签:
【中文标题】Nodejs - 小型 Express 服务器 + trayicon + pkg【英文标题】:Nodejs - small Express server + trayicon + pkg 【发布时间】:2021-09-18 19:07:21 【问题描述】:我正在尝试找出是否可以使用更小的文件大小,为基于 Express 的 API 服务器应用程序提供一个可分发的文件,并带有一些用于基本控件的托盘图标 - 基本上是退出 + 重新启动应用程序 + 在默认浏览器中打开 API。
使用 Electron Builder,我可以在大约 68MB 中执行 --ia32 目标,但想知道是否可以使用更小的大小,以了解更多信息。但是在尝试使用 pkg 使 Systray2 和相关解决方案工作时遇到问题(从 node_modules 获取 exe 文件上的 ENONENT(是的,尝试将其添加到 package.json pkg 资产,或者甚至将该 exe 复制到项目根目录下的 traybin 文件夹)。我我确信有办法,但我可能会遗漏一些可能很明显的东西,所以现成的 Git 会很棒。
如果有什么方便的话,是否有一些样板可供下载?当我只使用构建器、托盘和通知,而没有使用 mainWindow、ipc Renderer 等时,下载 Electron 感觉就像在浪费空间......
【问题讨论】:
【参考方案1】:不确定这是否仍然与您相关,但我今天实际上遇到了完全相同的要求。经过多次试验和错误,我确实设法通过将copyDir
标志设置为true
来解决它,如下面的代码所示,当使用systray2 npm 包时:
const systray = new SysTray(
menu:
icon: os.platform() === 'win32' ? './logo_s.ico' : './logo_s.png',
isTemplateIcon: os.platform() === 'darwin',
title: 'App',
tooltip: 'App',
items: [
itemExit
]
,
debug: false,
copyDir: true // This makes the systray2 work with pkg
)
我的 win-x64 二进制大小最终为 38MB
和 Brotli compression(fastify 服务器 + systray2 + 一些 css/images/js)。
虽然我没有将它与 Electron Builder 进行比较,但我有预感它会比这更大:)
【讨论】:
是的,谢谢,会检查并尝试,copyDir 是!以上是关于Nodejs - 小型 Express 服务器 + trayicon + pkg的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS Mongoose record.save TypeError
安装nodeJs静态服务器(NodeJs Express MVC 框架)