通过nodejs运行一个可执行文件

时间:2018-06-28 06:37:31

标签: javascript node.js npm electron

我想使用nodeJS运行可执行文件。以下是我尝试实现的过程。

  • 我使用的是Gui的ElectronJS,我使用了Electro-pacakger来编译JS文件。
  • 我的目标是从电子打包的可执行文件中调用EXE,以便触发我的服务器。

我的尝试:

main.js

var subpy = require('child_process').execFile("C:\\datajr\\datajr.exe");

第二次尝试:

我从那里引用了一些质量检查堆栈,如下所示:

var child = require('child_process').execFile;
  var executablePath = "C:\\datajr\\datajr.exe";

   child(executablePath, function(err, data) {
        if(err){
           console.error(err);
           return;
        }

    console.log(data.toString());
});
  • 当我触发命令npm start时,我的electron JSdatajr.exe必须执行。但不幸的是它没有发生。

2 个答案:

答案 0 :(得分:1)

从npm文档中:

  

npm start运行在其“脚本”对象(在您的package.json文件中)的包的“ start”属性中指定的任意命令。如果未在“脚本”对象上指定“开始”属性,它将运行节点server.js。

因此,如果您的项目目录中没有package.json,或者在main.js的{​​{1}}属性中没有包含startscripts无法正常工作。

如果您想了解更多信息,请查看npm文档:

对于npm starthttps://docs.npmjs.com/cli/start

对于npm start文件:https://docs.npmjs.com/files/package.json

答案 1 :(得分:1)

我想您想同时运行电子应用程序和另一个可执行文件,在这种情况下,您可以使用concurrently。 假设您可以直接从命令行执行可执行文件,例如datajr,然后可以通过添加以下内容来修改package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "concurrently \"datajr\" \"electron main.js\" ",
  }

现在npm start来启动电子应用程序和可执行文件。这样,您就可以克服从main.js内部执行文件的麻烦。