【问题标题】:Nodejs - small Express server + trayicon + pkgNodejs - 小型 Express 服务器 + 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 感觉就像在浪费空间......

【问题讨论】:

    标签: node.js express electron systray


    【解决方案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 二进制大小最终为 38MBBrotli compression(fastify 服务器 + systray2 + 一些 css/images/js)。

    虽然我没有将它与 Electron Builder 进行比较,但我有预感它会比这更大:)

    【讨论】:

    • 是的,谢谢,会检查并尝试,copyDir 是!
    猜你喜欢
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    相关资源
    最近更新 更多