从Electron生成子节点进程
我有一个现有的节点脚本,我从CLI运行像node script.js --args
。
我正在尝试构build一个Electron应用程序来replaceCLI。 要运行实际的脚本,我可以使用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}`); }); }
然而这只有当我从我的应用程序文件夹启动electron
时才起作用 当我使用electron-packager
运行构build的应用程序时, run()
调用失败,出现错误:
Uncaught Error: spawn node ENOENT
看起来,构build的应用程序不能运行node
命令。 我已经安装了NodeJS,但是如果我loggingprocess.env.PATH
我注意到从构build的应用程序/usr/local/bin
(其中node
所在的地方)不在$PATH
,但是如果我从我的应用程序文件夹运行electron
, 无论哪种情况,由于Electron在NodeJS上运行,有一种简单的方法可以从Electron应用程序运行节点脚本?