NodeJS:运行dot slash命令行Windows

时间:2017-03-10 14:51:46

标签: javascript node.js

我试图获取以下代码,这些代码应该在OSX和Windows中执行shell命令。

const exec = require("child_process").exec;
const runCommand = (cmd) => exec(cmd,
    function (error, stdout, stderr) {
        if (stdout.length > 0) {
            console.log(stdout);
        }
    });

对于以下runCommand("./node_modules/.bin/someBinary"),它在Windows中不起作用。但它在OSX中运行良好。所以我想知道在Windows中运行它需要哪些修改?

2 个答案:

答案 0 :(得分:0)

您是否考虑过尝试npm-exec

  

加载与npm run-script相同的环境,但执行任意bash命令行。 (甚至在窗户上!感谢害羞)。这包括修改$ PATH,以便在全局模块之前使用node_modules / .bin中的脚本。

所以你可以npm-exec someBinary而不是使用打破Windows / OSX兼容性的相对路径

如果此模块不适合您,您也可以按照this answer中的说明尝试npm bin

答案 1 :(得分:0)

好的,所以最后我通过检查我所在的平台来解决它,反过来我只是用特定的操作系统编写了相同的命令,所以它会运行。

简而言之,我使用process.platform找出它是哪个操作系统。不是最优雅的。但至少它解决了我的问题。