【问题标题】:Running Node.js depending on Operating System根据操作系统运行 Node.js
【发布时间】:2016-04-15 13:40:41
【问题描述】:

我对编程和 Node.js 非常陌生,但我有一个关于在不同操作系统上运行 node.js 应用程序的问题。我假设可能会发生某些特定节点模块仅在特定操作系统上工作的情况。例如,如果我想在 linux 服务器上运行我的应用程序,但我在 mac 上开发,而 linux 服务器无法访问互联网,我如何确定所有节点模块都将在我的目标操作系统上运行?因此,我正在寻找一种可能性来安装依赖于操作系统密钥的节点模块。例如:

npm install module-name target-OS

经过一番研究,我找到了另一种可能的解决方案:也许我可以在 package.json 文件中定义一个脚本来处理这个问题。可能是这样的:

{
  "name": "some-app",
  "version": "0.0.1",
  "authors": [
    "author <author@node.com>",
  ],
  "scripts": {
    "dealwithos": "node bin/dealwithos.js"
  }
}

但是直到现在我还没有找到任何可以解决这个问题的好代码。

我希望有人能够提供一些代码或其他可能的解决方案!

问候

【问题讨论】:

  • 您是否有任何具体理由相信所有模块都无法在所有操作系统上运行?这是一个最好逐案解决的问题(如果它是一个问题)。提前考虑一个通用的解决方案并不是很有用。
  • 感谢您的回答。我不相信这个问题会经常发生,但我很好奇如果它发生了我将如何解决它,我确信有些模块会出现这个问题。

标签: linux node.js windows macos cross-platform


【解决方案1】:

您的示例并不具体。因此,没有真正正确的答案。但我想我可以不明白,你想知道什么。

node.js 的主要思想是它可以在所有操作系统上运行。为什么?因为您正在使用到处运行的 JavaScript 进行开发。此外,大多数模块都是用 JS 编写的。因此,如果您在 Windows 系统上为 linux 环境编程,您应该确保您使用的模型是用 JS 编写的。这就是普通的节点模块。

还有其他模块吗?

是的。可以使用 C++ 创建模块。但他们的数量并不多。如果您想使用其中之一,您应该阅读模块文档中的安装信息。无论如何,您还应该考虑 JS 中的替代方案。但一般不可能回答这个问题。

node.js 应用程序还有另一种方式。例如electron 允许您使用 JavaScript 编写应用程序。在这种情况下,您应该阅读documentation about desktop integration。但这些应用程序也有一个 gui。如果您只是为 node.js 开发,您将没有 gui 部分。

所以只是回答你关于操作系统特定 npm 命令的建议:不,仅为一个操作系统安装一个模块是没有意义的,因为 node.js 的想法是独立于操作系统。

【讨论】:

    猜你喜欢
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2011-02-21
    • 2012-05-21
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多