我有一个现有的节点脚本,我从CLI运行,如node script.js --args
。
我正在尝试构建一个Electron应用程序来取代CLI。要运行实际脚本,我可以使用child_process
:
function run(arg) {
const script = spawn("node", ["./script.js", "run", "--arg", arg], { cwd: TOOLS_DIR, env: process.env });
script.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
script.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
script.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
}
但是,只有从我的app文件夹中启动electron
时,此功能才有效。当我使用electron-packager
运行构建的应用时,run()
调用失败并显示错误:
Uncaught Error: spawn node ENOENT
似乎构建的应用程序无法运行node
命令。我安装了NodeJS,但是如果我记录process.env.PATH
,我注意到构建的应用/usr/local/bin
(node
生活的地方)不在$PATH
,但如果我运行{{} 1}}来自我的app文件夹。在任何一种情况下,由于Electron在NodeJS上运行,有一种从Electron应用程序运行节点脚本的简单方法吗?