【问题标题】:Whether nodejs support runtime dependency?nodejs 是否支持运行时依赖?
【发布时间】:2017-10-17 04:02:44
【问题描述】:

我创建了一个 nodejs 应用程序。它在我的 package.json 文件中有 jdbc 依赖项。我发现如果目标机器没有安装jre,我的应用程序将无法启动。由于jdbc 只是我的应用程序中的一个可选功能,我想知道是否有办法让我的应用程序在没有安装jre 的环境中运行。

理想情况下,我想实现这样的逻辑:

1、检测目标机器是否安装jre

2、如果已安装,启用此功能

3,如果没有,请禁用此功能

所以我需要对 nodejs 的运行时依赖来支持这个要求。

【问题讨论】:

  • require 只是普通的 JavaScript 代码,所以你可以 try { ... } catch(err) { ... } 绕过它。
  • @tadman 这并没有真正解决核心问题——即如果安装了 Java,它应该激活。
  • 很多时候,拥有某种设置系统比仅仅因为它已经安装就自动检测和使用它要好。如果作为用户我不希望 Java 参与您的应用程序,我只是出于其他原因安装了它怎么办?

标签: node.js


【解决方案1】:

您的问题分为两部分:

  1. 你能检测出机器是否安装了Java吗?
    是的 - 您可以使用像 this 这样的代码来执行 shell 命令来确定是否安装了 JRE,并可能验证版本。

  2. 您能否在运行时选择性地包含依赖项?
    也可以 - 您可以使用 if 语句,例如:

    var jbdc; if(java_installed){ jbdc = require('jbdc'); }

话虽如此,如果您在安装时收到来自jbdc 的错误,如果支持 Java,您仍然必须手动选择安装 jbdc。为此,请将jbdc 添加到您的package.json 作为optional dependency

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2011-01-05
    相关资源
    最近更新 更多