2016-03-22 12 views
2

グローバルにインストールされたノードパッケージを別のグローバルパッケージlauncherを介して別のプロセスとして起動する必要があります。ランチャーが別のパッケージを起動して終了します。spawnはnode.jsでグローバルパッケージを起動できません

スポーンは別のプロセスとしてメモ帳を起動できます。しかし、グローバルにインストールされたパッケージを起動することはできません。

//var child = moduleLauncher.spawn('notepad',[],{ 

var child = moduleLauncher.spawn('hrm_module C:/test.scanRequest',[],{ 

      detached: true, 

      stdio: ['ignore', out, err] 
}); 

child.unref(); 

生成されたエラー:

events.js:154 

    throw er; // Unhandled 'error' event 
^

Error: spawn hrm_module C:/test.scanRequest ENOENT 
    at exports._errnoException (util.js:856:11) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) 
    at onErrorNT (internal/child_process.js:344:16) 
    at nextTickCallbackWith2Args (node.js:475:9) 
    at process._tickCallback (node.js:389:17) 
    at Function.Module.runMain (module.js:449:11) 
    at startup (node.js:140:18) 
    at node.js:1001:3 

注: - hrm_module C:/test.scanRequestは、Windowsのコマンドプロンプト上で正常に動作しているcommond

私は以下のコードを書かれています。

ランチャーでこのコマンドを実行します。

spawn('hrm_module',['C:/test.scanRequest'] 

は、引数配列で引数を渡すべき

答えて

0
spawn('hrm_module C:/test.scanRequest',[] 

ニーズ。そうでなければ、hrm_module C:/test.scanRequestという名前のファイルを探し、あなたが見つけたものを見つけません。

+0

私は以下のエラーを取得。..示唆として試み:エラー:産卵hrm_module ENOENT – user2902037

+0

は 'hrm_module'が上だろうグローバル' bin'ディレクトリですパス?あるいは 'hrm_module'はコマンドラインを持たないモジュールですか?モジュールがbinディレクトリにない場合は、 'spawn(require.resolve( 'hrm_module') ')を使ってモジュールへのフルパスを取得できます。 –

0

はあなたのためのモジュールを起動するcmdをしてみましょう:

const command = 'cmd'; 
const args = ['/C', 'hrm_module', 'C:/test.scanRequest'] 
const options = {/* your spawn options */ }; 
spawn(command, args, options); 
関連する問題