2016-10-11 10 views
0

私はElectronNativefierパッケージのMac OSX GUIを書いています.Nodejがインストールされた(グローバルに)パッケージ化されたアプリケーションを実行すると、すべて正常に動作します。
Nodejsがインストールされていないマシンでは、コマンドを見つけることができません。ElectronパッケージのアプリケーションからCliコマンドを実行

私は、CLIへの完全なパスと電子の内部Nativefier CLIを使用しています:

var cliCmd = '"'+app.getAppPath()+'/node_modules/nativefier/lib/cli.js"'; 

const child_process = require('child_process'); 
child_process.exec(cliCmd+' --name "App Name" "http://appname.tld" --platform darwin --arch x64 --electron-version "0.36.6"', function (error, stdout, stderr) { 
    if (error) { 
    console.error(`exec error: ${error}`); 
    return; 
    } 
    console.log(`stdout: ${stdout}`); 
    console.log(`stderr: ${stderr}`); 
}); 

私はこのエラーを取得しています:"env: node: No such file or directory"
app.getAppPath()ディレクトリをチェックし、それが正しいのです。

また、私はenvcwdのパラメータを渡そうとしましたが、成功しませんでした。

child_process.exec(cliCmd+' --name "App Name" "http://appname.tld" --platform darwin --arch x64 --electron-version "0.36.6"', 
{ 
    env: {"ATOM_SHELL_INTERNAL_RUN_AS_NODE":"1"}, 
    cwd: app.getAppPath() 
}, 
function (error, stdout, stderr) { 
    if (error) { 
    console.error(`exec error: ${error}`); 
    return; 
    } 
    console.log(`stdout: ${stdout}`); 
    console.log(`stderr: ${stderr}`); 
}); 

私は間違っていますか? child_process.spawn()も試しましたが、もう一度運がありません。
nodejsがインストールされていないマシンで、私のアプリからパッケージ化されたnode_module/cliを呼び出すには何が必要ですか?

答えて

2

オブジェクト の中にexecPathが見つかりました。これで、nodejsがグローバルにインストールされていないマシンでnodejsコマンドを実行できます。 Electronのビルトインバージョンを使用しています。私はこれを試したとき

child_process.exec(process.execPath+' '+cliCmd+' --name "App Name" "http://appname.tld" --platform darwin --arch x64 --electron-version "0.36.6"', 
{ 
    env: {"ATOM_SHELL_INTERNAL_RUN_AS_NODE":"1"}, 
    cwd: app.getAppPath() 
}, 
function (error, stdout, stderr) { 
    if (error) { 
    console.error(`exec error: ${error}`); 
    return; 
    } 
    console.log(`stdout: ${stdout}`); 
    console.log(`stderr: ${stderr}`); 
}); 
+0

は、私が 'だエラー:モジュール「を見つけることができません/Users/abeall/tools/electron/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Resources/electron.asar/browser/init.js'' – Aaron

関連する問題