我正在使用exec(promisified)来运行Makefile:
const out = await exec('make', { maxBuffer: 1024 * 1024 * 10 });
然而,当我查看Makefiles输出时,即使建筑物成功,也会始终填充stderr
字段。
"stdout": "stuff...",
"stderr": "0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
9 4813k 9 439k 0 0 29.1M 0 --:--:-- --:--:-- --:--:-- 28.6M
100 4813k 100 4813k 0 0 101M 0 --:--:-- --:--:-- --:--:-- 100M
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17939 100 17939 0 0 1063k 0 --:--:-- --:--:-- --:--:-- 1094k
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17939 100 17939 0 0 1352k 0 --:--:-- --:--:-- --:--:-- 1459k
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17939 100 17939 0 0 1577k 0 --:--:-- --:--:-- --:--:-- 1751k".
正如你所看到的,我的Makefile在某些时候下载了4个文件。然而它填充了stderr字段。此外,如果文件没有下载(网址不正确),它只是说0%而不是100%,这不会让事情变得更好。
无论如何只能在stderr中获取错误,在发生这种情况时很难正确处理错误。
答案 0 :(得分:1)
所以cURL正在向stderr写进度条。在这里找到答案:
https://stackoverflow.com/a/18284752/1137669
在cURL命令中添加了标志--fail --silent --show-error
,现在它只填充了错误的stderr。