【问题标题】:How to trigger node filename.js file in Electron?如何在 Electron 中触发节点 filename.js 文件?
【发布时间】:2023-03-09 20:27:01
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: javascript node.js electron child-process


    【解决方案1】:

    查看this answer,其中包含一些尝试和调试此错误类型的好方法。

    【讨论】:

      【解决方案2】:

      派对迟到了,但节点的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' });
      

      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 帖子包含有关 spawnENOENT 错误的更多信息。

      【讨论】:

        猜你喜欢
        • 2012-01-27
        • 1970-01-01
        • 2018-01-31
        • 2017-10-16
        • 1970-01-01
        • 2023-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多