我正在尝试在我的 mac 机器上运行的 node.js 应用程序中使用 ripgrep。(VS代码扩展)。
我尝试了 ripgrep-js npm libray 但它没有给出任何响应,并且应用程序只是处于挂起状态。
我尝试调试,发现 ripgrep-js 只是运行 rg 命令并获取其结果并以格式化的方式返回。我尝试运行简单的命令,例如
rg test .
我得到了结果。
但是当我通过 node.js child_process 运行时,它没有给出任何响应。这是我正在运行的代码。
// index.js
const cp = require('child_process');
let p = cp.spawn('rg', ['test'], { cwd: './'});
p.stdout.on('data', data => {
console.log('stdout: ' + data.toString());
});
p.stderr.on('data', data => {
console.log('stderr: ' + data.toString());
});
p.on('close', code => {
console.log('closed: ' + code);
});
不知道可能是什么原因。我遇到了这个问题child_process.spawn 不会发出任何 与我的 ripgrep 不工作的用例匹配的事件。但目前还不清楚究竟做了什么来解决这个问题。向社区寻求帮助。
为了重现这一点,请使用上面的代码创建 index.js 并使用节点运行node index.js