如何在电子中触发节点文件名.js文件?



我正在尝试从Electron触发一个JS文件。如果我在终端中尝试命令节点测试.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);
});

提前谢谢。

查看此答案,其中包含几种尝试调试此错误类型的好方法。

派对非常晚,但节点的fork正是为了运行外部节点文件而存在的。

父.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' });

孩子.js

process.on('message', (msg) => {
console.log('Message from parent:', msg);
});
let counter = 0;
setInterval(() => {
process.send({ counter: counter++ });
}, 1000);

示例无耻地取自这个关于 Node.js 子进程的 freecodecamp 教程。

PS:第一个答案中链接的SO帖子有关于spawnENOENT错误的更多信息。

最新更新