【发布时间】:2017-02-19 18:11:26
【问题描述】:
我正在编写一个带有 Electron 和 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() 目录,它是正确的。
另外,我尝试传递env 和cwd 参数,但没有任何成功。
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?
【问题讨论】:
标签: node.js macos electron child-process