【问题标题】:Standalone Node.js application独立的 Node.js 应用程序
【发布时间】:2012-11-03 11:55:59
【问题描述】:

我正在考虑开发一个由两部分组成的桌面应用程序:

  • 用户界面(例如 Java 应用)
  • 后端 Node.js 服务器

这两个部分通过套接字连接。不要问我为什么知道这很奇怪。

我希望能够通过安装程序向客户提供应用程序。我不希望用户必须自己安装 Node.js。

有没有办法让 Node.js 服务器独立安装,即不需要在系统上全局安装 Node.js。

这是一个适用于任何(Windows、Linux、Mac OS X...)环境的问题。

【问题讨论】:

标签: node.js


【解决方案1】:

2017-05-04 更新:镇上来了一个新孩子:

2016-11-14 更新:如今 Electron 和 nwjs 似乎是最好的选择。

原创

创建安装程序需要执行多个步骤,并且每个操作系统的安装程序都不同。例如:

【讨论】:

    【解决方案2】:

    您可以将二进制文件与您的应用程序捆绑在一起。无需安装任何东西即可运行 Node 应用程序。二进制文件是available,与安装程序位于同一页面上。

    你只需要知道二进制文件在哪里,但我假设你有一个安装程序可以将它们放在已知的地方。

    // To start the node process
    $ /path/to/binaries/npm install
    $ /path/to/binaries/node myApp.js
    

    【讨论】:

    • 这样的打包根据nodejs license合法吗?
    • 它没有回答问题
    • 这个答案已经过时/不完整,现在有很多工具可以处理这个问题(参见@CoolAJ86's answer)。刚刚在 macOS 上尝试了pkg,它为每个平台生成一个独立的可执行文件,我在一个开箱即用的 Windows VM 上测试了.exe,完美无缺。
    【解决方案3】:

    Node-Webkit 是一个选项,但它确实不是为了建立“服务器 - 客户端”类型的关系而设置的。

    另一种选择是将 node.js 安装程序与您的应用程序安装程序一起打包。然后,当应用程序启动时,您可以启动 node.js 进程。我知道一些开发人员一直在用钛做这件事,这里有更多信息information

    希望这会有所帮助!

    【讨论】:

    • 您可以从 node-webkit 启动服务器,就像在 Node.js 中启动它一样。只是node-webkit提供了B/S架构之外的另一种方式。
    • 这并没有直接回答我的问题(所以我接受了另一个问题),但这太棒了,这是一个比我计划做的更好的解决方案!谢谢!!
    • @RogerWang 你能解释一下如何从 node-webkit 启动服务器
    【解决方案4】:

    这里有一个选项:Light Table 是一个节点应用程序,但在大多数操作系统上安装得很好并且干净地集成了 GUI (webkit)。

    为此,它利用node-webkit。 (直接从 html 页面运行节点代码。)这是packaging documentation

    【讨论】:

      【解决方案5】:

      值得一提的是由 GitHub 制作的 Electron。用于构建 Atom、Slack、Visual Studio Code 等。

      【讨论】:

      • @jezrael - 这并不比其他答案差。这是问题的本质。
      【解决方案6】:

      我刚刚偶然发现了nexe——一种“从你的 node.js 应用程序中创建单个可执行文件”的工具。

      我还没有尝试过,但我猜它甚至可以在没有安装程序的情况下工作——只生成一个独立的二进制文件。

      【讨论】:

      • 刚刚尝试使用它。遇到了很多问题。它会默默地失败很多。我从来没有让它在我的一些用例中工作,所以我切换到上面提到的 pkg 并且遇到了问题。
      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      相关资源
      最近更新 更多