如何在node-webkit中从JavaScript运行shell命令?

4
有没有办法在node-webkit中从JavaScript运行shell命令? 有很多类似的问题,但它们并没有帮助我。
我正在尝试构建一个简单的桌面应用程序来列出安装的工具。 我创建了一个名为“tools-v”的节点模块,它被全局安装,并且当我在命令行中运行它时可以正常工作。 这个模块运行几个命令:npm -vnode -vgit -v等等。 我使用的是Windows 7。
//var sys = require('sys');
var exec = require('child_process').exec;
//var toolsv = (process.platform === "win32" ? "tools-v.cmd" : "tools-v");
$(document).ready(function() {
    //myCmd = "C:\\Users\\win7\\AppData\\Roaming\\npm\\tools-v.cmd";
    //myCmd = toolsv;
    myCmd = 'tools-v';
    //gui.Shell.openItem('firefox',function(error, stdout, stderr) { });
    //opening Firefox works.
    exec(myCmd,  function (error, stdout, stderr) {
        //detached: true;
        console.log('stdout: ' + stdout);
        $('#output').append('stdout: ' + stdout)
        if (error !== null) {
          console.log('exec error: ' + error);
        }
    });
});

我总是遇到错误: ""exec error: Error: spawn ENOENT""

我尝试了使用spawn来代替exec。除了Node模块之外,我还尝试了几个其他命令。 谢谢。

1个回答

1

实际上,这段代码是有效的。我只是没有构建完整的应用程序,我通过 sublime build for node-webkit 进行了测试。使用 grunt 进行完整的构建解决了所有 spawn 问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接