使用带有通知程序的 pkg 构建 node.js 可执行文件

Posted

技术标签:

【中文标题】使用带有通知程序的 pkg 构建 node.js 可执行文件【英文标题】:Build node.js executable using pkg with notifier 【发布时间】:2020-07-20 19:00:49 【问题描述】:

我正在使用 pkg 将我的节点应用程序打包到 .exe 中,它运行良好。我遇到的问题是模块 notifier 不包含在构建中。当我运行以下命令来构建 exe 时:

$ pkg . --targets node10-win-x64

我明白了:

> pkg@4.4.6
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\notifu\notifu.exe
  %2: path-to-executable/notifier/notifu.exe
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\notifu\notifu64.exe
  %2: path-to-executable/notifier/notifu64.exe
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\terminal-notifier.app\Contents\MacOS\terminal-notifier
  %2: path-to-executable/notifier/terminal-notifier
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\snoreToast\SnoreToast.exe
  %2: path-to-executable/notifier/SnoreToast.exe
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\notifu\notifu.exe
  %2: path-to-executable/notifier/notifu.exe
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\notifu\notifu64.exe
  %2: path-to-executable/notifier/notifu64.exe
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\terminal-notifier.app\Contents\MacOS\terminal-notifier
  %2: path-to-executable/notifier/terminal-notifier
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  %1: node_modules\node-notifier\vendor\snoreToast\SnoreToast.exe
  %2: path-to-executable/notifier/SnoreToast.exe

这似乎是一个常见问题,它已被曝光here,但我无法使用该用户的信息来解决这个问题。我应该将 notifu.exe 移动到我的节点的 main.js 所在的目录吗?

【问题讨论】:

嘿,你解决了吗? 【参考方案1】:

我解决了。在 Windows 10(64 位)上 在我的项目中,我使用了“node-notifier”,并收到了与上述类似的警告。 上面的警告是一个警告,可执行文件在创建后必须位于子文件夹中。

但是,在 Windows 10(64 位)中,“node-notifier”使用“soreToast-x64.exe”而不是“soreToast.exe”。

您可以按以下顺序进行。

    将 pkg 重新安装到最新版本。

npm i -g pkg

    从“\node_modules\node-notifier~”子文件夹中查找并复制“snoretoast-x64.exe”。

    在生成的可执行子路径中创建一个文件夹“notifier”并复制粘贴“snoretoast-x64.exe”。

【讨论】:

以上是关于使用带有通知程序的 pkg 构建 node.js 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

带有 Firebase (FCM) 推送通知的 Node js

pkg-config 找不到 gtk+-3.0

使用pkg打包Node.js应用的方法步骤

node打包exe工具Pkg使用心得

带有 Node.js 后端的移动应用程序 - 为客户端开发选择啥框架?

Node.js - FCM 发送预定主题通知