运行 来自 Electron 打包应用程序的 CLI 命令

Run a Cli command from an Electron packaged app

我正在用 Electron and Nativefier 包编写 Mac OSX GUI,当我 运行 在安装了 Nodejs 的机器上(全局)打包应用程序时,一切工作正常。
在没有安装 Nodejs 的机器上找不到命令。

我在 Electron 中使用 Nativefier Cli,并带有完整的 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?

我在 process 对象中找到了 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}`);
});