【问题标题】:node js application bundling for macOSmacOS 的 node js 应用程序捆绑
【发布时间】:2019-12-11 08:09:51
【问题描述】:

我开发了一个节点 js 应用程序。我已经设法使用 node pkg 将我的应用程序捆绑到一个 .exe 文件中,该文件可以在 Windows 上完美运行。现在我需要为 macOS 做同样的事情,以便我的应用程序可以在 Apple 计算机上运行。 node pkg 本身也提供适用于 Linux 和 macOS 的可执行文件,但我无法使用 macOS 版本。 有什么方法可以用 node js 为 macOS 开发软件吗? 如果 macOS 有哪些文件格式类似于 Windows 中的 .exe 文件?

【问题讨论】:

  • @Subburaj MSI 是 Windows 使用的安装程序包文件格式,是什么让您认为 macOS 需要它?
  • @Fakhreddin,我认为您在 pkg 上走在了正确的轨道上,就像您说的那样,它确实支持为 Windows 和 Mac 创建可执行文件。 “我无法使用 macOS 版本”究竟是什么意思?你遇到了什么问题?错误信息等?
  • @PatrickHund 感谢您的关注,帕特里克。我的意思是我需要将我的应用程序作为可执行文件运行。您可能知道,为了运行 node js 应用程序,您需要从命令提示符运行它,例如“节点索引.js”。相反,我需要通过双击来运行我的应用程序。为此,我为 Windows 创建了 .exe 文件,但我无法为 Mac 做同样的事情。我不知道如何使用“node pkg”为 Mac 生成的奇怪文件格式。
  • @PatrickHund 此外,我将 .exe 文件作为 Windows 服务运行,以便我的应用程序在后台运行。 Mac 有没有类似的解决方案?

标签: javascript node.js yarnpkg zeit-pkg


【解决方案1】:

当您使用 pkg 打包 Node.js 应用程序时,默认情况下会创建适用于 Windows、Linux 和 macOS 的可执行文件。

这个最小的例子创建了一个在控制台打印“HELLO WORLD”的可执行文件:

$ echo "console.log('HELLO WORLD')" > index.js
$ npx pkg index.js
npx: installed 138 in 5.155s
> pkg@4.4.2
> Targets not specified. Assuming:
  node10-linux-x64, node10-macos-x64, node10-win-x64

这会产生以下可执行文件:

$ ls -l
total 227360
-rwxr-xr-x  1 pahund  110015913  39698697 Dec 24 14:03 index-linux
-rwxr-xr-x  1 pahund  110015913  40712141 Dec 24 14:03 index-macos
-rw-r--r--  1 pahund  110015913  35979810 Dec 24 14:03 index-win.exe

在 macOS 终端中,您可以通过文件访问设置 rwxr-xr-x 判断 index-linuxindex-macos 是可执行的(这就是“x”的含义)。

.exe 结尾的文件是特定于 Windows 的,不适用于 Linux 和 macOS。这并不意味着index-linuxindex-macos 不可执行。

您可以像任何其他二进制文件或脚本一样从终端运行它们:

$ ./index-macos
HELLO WORLD

(注意在终端运行时需要路径./

您也可以在 macOS Finder 中找到index-macos 并双击它,这将打开一个打印“HELLO WORLD”的终端窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多