我试图从Electron触发一个JS文件。如果我在终端中尝试命令节点test.js,它可以正常工作。如果我在Electron中尝试相同的操作,我会收到错误Uncaught Error: spawn node test.js ENOENT
。如果我走错了路,你能纠正我吗?
var spawn = require('child_process').spawn;
var executeSpawn = spawn('node test.js',{
cwd: process.resourcesPath+'/app/test.js'});
executeSpawn.stdout.on('data',function(data){
console.log(`data:${data}`);
});
executeSpawn.stderr.on('data',function(data){
console.log("data:",data);
});
executeSpawn.on('close',function(ev){
console.log("ev",ev);
});
提前致谢。
答案 0 :(得分:0)
查看包含几种好方法的this answer,尝试调试此错误类型。
答案 1 :(得分:0)
聚会非常晚,但节点的fork
完全存在于运行外部节点文件的目的。
parent.js
const { fork } = require('child_process');
const forked = fork('child.js');
forked.on('message', (msg) => {
console.log('Message from child', msg);
});
forked.send({ hello: 'world' });
child.js
process.on('message', (msg) => {
console.log('Message from parent:', msg);
});
let counter = 0;
setInterval(() => {
process.send({ counter: counter++ });
}, 1000);
从this freecodecamp tutorial on Node.js child processes无耻地取得的例子。
P.S。:第一个答案中的关联SO帖子提供了有关ENOENT
的{{1}}错误的更多信息。