Makefile stderr始终填充

时间:2018-01-12 10:12:32

标签: javascript node.js makefile

我正在使用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中获取错误,在发生这种情况时很难正确处理错误。

1 个答案:

答案 0 :(得分:1)

所以cURL正在向stderr写进度条。在这里找到答案:

https://stackoverflow.com/a/18284752/1137669

在cURL命令中添加了标志--fail --silent --show-error,现在它只填充了错误的stderr。