问题描述
自从最近更新Linux(或者可能是可视代码)以来,我发现写到stderr会引发未捕获的错误,例如:
从/
Exception has occurred: Error: write EPIPE
at afterWritedispatched (internal/stream_base_commons.js:156:25)
at writeGeneric (internal/stream_base_commons.js:147:3)
at Socket._writeGeneric (net.js:784:11)
at Socket._write (net.js:796:8)
at writeOrBuffer (_stream_writable.js:352:12)
at Socket.Writable.write (_stream_writable.js:303:10)
at Object.<anonymous> (/home/michael/ProjectFiles/ucm-api/bin/ucmapi:6:16)
at Module._compile (internal/modules/cjs/loader.js:1076:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:941:32)
at Function.Module._load (internal/modules/cjs/loader.js:782:14)
at Module.require (internal/modules/cjs/loader.js:965:19)
at require (internal/modules/cjs/helpers.js:88:18)
at requireOrImport (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/esm-utils.js:15:12)
at Object.exports.loadFilesAsync (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/esm-utils.js:28:26)
at Mocha.loadFilesAsync (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/mocha.js:386:19)
at singleRun (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/cli/run-helpers.js:149:15)
at exports.runMocha (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/cli/run-helpers.js:186:11)
at Object.exports.handler (/home/michael/ProjectFiles/ucm-api/node_modules/mocha/lib/cli/run.js:319:11)
at /home/michael/ProjectFiles/ucm-api/node_modules/yargs/lib/command.js:241:49
'use strict'
process.stderr.write('\n');
uname -a
的输出如下:
Linux michael-ThinkPad-T470s-W10DG 5.4.0-47-generic #51~18.04.1-Ubuntu SMP Sat Sep 5 14:35:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
我使用的NodeJS版本是14.10.0,但是我在13.13.0上重现了相同的错误
我非常清楚,使用console.error可能更好,有趣的是,使用console.error不会导致未捕获的错误,但是流仍然会记录-32 EPIPE错误,以应对管道破裂,我可以通过设置来证明这一点函数writeGeneric中的stream_base_commons文件中的条件断点。我只是顺便提一下。
这里的实际问题是debug
npm软件包在这里使用以下行:https://github.com/visionmedia/debug/blob/master/src/node.js#L190
由于该库具有36292个依赖项,因此我发现项目中的许多软件包都依赖于调试。
解决方法
今天偶然发现与vscode相同的错误,调试抛出相同的错误,但可以在命令提示符下正常运行。将vscode更新恢复到2020年7月更新,并禁用自动更新,然后再次调试,现在可以正常工作了。
也许您可以尝试先在终端中运行它。
,在VSCode 1.49中为the bug MS introduced。 更新到1.49.1可以修复它。