Javascript 始终填充Makefile stderr
我正在使用exec(promisified)运行生成文件:Javascript 始终填充Makefile stderr,javascript,node.js,makefile,Javascript,Node.js,Makefile,我正在使用exec(promisified)运行生成文件: const out = await exec('make', { maxBuffer: 1024 * 1024 * 10 }); 然而,当我查看Makefiles输出时,即使在构建成功时,stderr字段也总是被填充 "stdout": "stuff...", "stderr": "0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
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字段。此外,如果文件没有下载(url不正确),它只会声明0%,而不是100%,这并不能使事情变得更好
不管怎样,在stderr中都只能得到错误,当这种情况发生时,很难得到正确的错误处理。所以cURL正在向stderr写入进度条。在这里找到了答案:
在cURL命令中添加了标志
--fail--silent--show error
,现在它只在stderr中填充错误。也许您可以了解一下makefile?它有什么作用?因此,我不清楚@kebscurl-o client dist/documentation/tutorial.pdf$(DOC_URL)
@kebs传递给回调的stdout和stderr参数将包含子进程的stdout和stderr输出。默认情况下,Node.js将把输出解码为UTF-8,并将字符串传递给回调函数。encoding选项可用于指定用于解码stdout和stderr输出的字符编码。如果编码为“buffer”,或无法识别的字符编码,则缓冲区对象将被传递到回调。
Makefile是否通常向stderr传递除错误以外的任何内容?如果Makefile中的命令失败,则它可能会在stderr上生成输出,否?您显示的文件内容看起来熟悉吗?你能确定生成它的程序吗?(我不能)