我需要使用Node来生成一些文件的差异。 我已经尝试了diff npm包,虽然它很好用,但是它的性能比在/usr/bin/中找到的diff版本要差得多。
当我尝试使用exec运行diff命令时,它总是出错。
var childProcess = require('child_process');
var cmd = "diff /path/to/file1.txt /path/to/file2.txt";
childProcess.exec(cmd, (error, stdout, stderr) => {
if(error) {
console.log(error);
} else {
console.log(stdout);
}
});
输出结果:
{ [Error: Command failed: /bin/sh -c diff /path/to/file1.txt /path/to/file2.txt
]
killed: false,
code: 1,
signal: null,
cmd: '/bin/sh -c diff /path/to/file1.txt /path/to/file2.txt' }
如果我自己在命令行上运行该命令,它就可以正常工作。
我尝试了运行 /usr/bin/diff
而不是只运行 diff
。
我尝试了各种不同形式的引用。
我尝试了每一个使用完全相同文件的其他命令,比如 cat
,wc
等等都可以正常工作。
有什么想法吗?
stderr
而不是stdout
。 - EloHailwidisresolve()
以解决 Promise。 - Maciek Rek