javascript - 适用于 macOS 的 Node.js 应用程序捆绑

标签 javascript node.js yarnpkg zeit-pkg

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

最佳答案

当您使用 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”。

关于javascript - 适用于 macOS 的 Node.js 应用程序捆绑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59281315/

相关文章:

node.js - gulp 将任务合并到默认命令中

typescript - 如何让 TSLint 解决与 Yarn 工作区的间接类型依赖关系?

node.js - 为什么 `yarn upgrade my_package` 升级时不考虑 package.json 中的版本

symfony - 如何使用 Webpack Encore 在 Heroku 上编译资源?

javascript - 在 Vuex 中使用 get/set 计算属性和 mapState、mapMutation

javascript - 使用 javascript 以编程方式单击非按钮元素?

javascript - 更新 mongodb 中的嵌套值

javascript - 将 php 数组转换为 js 数组,并动态调整数组大小

c# - 如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点

node.js - res.Send 会导致 404 错误吗?