我目前正在使用 spawnSync 和 stdio:inherit 将日志打印在我的控制台上。但是,我正在寻找将自定义日志记录到单独的文件,以防万一在生成期间出现任何故障。
我想创建一个包装器
spawn
因此它具有以下属性:
- 输出存储在变量中的同步函数
- 在控制台上查看输出
- 将 stdout 和 stderr 写入文件
例如:
const result = spawnSync('ls', [ '-l', '-a' ], { stdio: 'inherit'}); // will print as it's processing
console.log(result.stdout); // will print null
const result = spawnSync('ls', [ '-l', '-a' ], { encoding: 'utf-8' }); // won't print anything
console.log(result.stdout); // will print ls results only on completion
我需要 result
以便它在处理时打印并同时写入文件
除了 shell 脚本之外,我还在寻找 node.js 方面的一些策略或解决方案
最佳答案
我想由于 node.js 的限制,我们无法使所有这三个成为可能
如果我们尝试使用 stdio:'inherit' ,我们可以将输出重定向到父标准输出流或使用
fs.openSync()
由于限制,我们也不能使用自定义流。
关于javascript - Node : How to make spawn function synchronous instead of using spawnSync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66996109/