2017-10-17 15 views
1

私はnodejsアプリケーションを作成しました。私のpackage.jsonファイルにはjdbcの依存関係があります。ターゲットマシンにjreがインストールされていないと、私のアプリを起動できないことがわかりました。 jdbcは私のアプリのオプション機能にすぎないので、jreがインストールされていない環境でアプリが動作するようにする方法があるかどうかは疑問です。理想的にはnodejがランタイム依存性をサポートしているかどうか?

、私はこのようなロジックを実装したい:、

1をターゲットマシンがjre

2をインストールするかどうかを検出し、インストールしている場合は、

3この機能を有効にし、そうでない場合はこの機能を無効にする

この要件をサポートするには、nodejsにランタイム依存関係が必要です。

+0

'require'は普通のJavaScriptコードなので、' {{}} catch(err){...} 'できます。 – tadman

+0

@tadmanこれは、Javaがインストールされている場合にアクティブにする必要があるコアの問題を実際に回避することはありません。 –

+0

インストールされているという理由だけで、自動的に検出して使用するよりも、何らかの設定システムを持つ方が時間がかかります。ユーザーとしてJavaをあなたのアプリケーションに関与させたくない場合は、他の理由でJavaをインストールするだけですか? – tadman

答えて

3

あなたの質問は二つの部分ました:あなたは、マシンはJavaがインストールされているかどうか

  1. を検出することはできますか?
    はい - thisのようなコードを使用すると、シェルコマンドを実行してJREがインストールされているかどうかを判断し、バージョンを確認することができます。

  2. 実行時に依存関係を選択的に含めることはできますか?あなたはまだ手動でする必要があるとしているjbdcからのインストール時にエラーを取得している場合、これは言われて

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


はまた、あなたが同じようにifステートメントを使用することができますYES- Javaがサポートされている場合は、jbdcをインストールすることを選択します。これを行うにはをpackage.jsonoptional dependencyとして追加してください。

関連する問題