我当前正在构建一个CLI,它具有一个“监视”功能/命令,该功能/命令会在给定文件发生更改时触发该功能。但是,我需要此“监视”功能在单独的进程上运行,因为我不希望“监视”的输出弄乱终端的历史记录。例如,当用户退出watch命令时,其之前输出的所有内容都应删除。另外,在再次输出之前清除子进程也很重要,因为我将打印带有每次文件更新时可能更改的数据的表。
下面的代码可以按我的意愿工作,但是,用户需要退出两个不同的过程,一个来自| less -r
,另一个来自fs.watch
。
const fs = require('fs');
const {spawn} = require('child_process');
const outputFunction = () => {
return 'I am the output!';
};
fs.watch('fileToWatch', () => {
spawn(`cat <<< '${outputFunction()}' | less -r`, {
stdio: 'inherit',
shell: true,
});
});
任何帮助都将受到欢迎和赞赏。