在调试node.js代码时,有没有办法在Visual Studio Code(版本1.10.2)的调试控制台中显示颜色(如在终端中)?
答案 0 :(得分:5)
我想到目前为止最好的方法是将调试输出放入备用目的地:
在启动配置属性中,console
设置可以设置为以下之一:internalConsole
(默认情况下,内置调试控制台)externalTerminal
(外部cmd窗口)或{{1 (VS Code终端)。
可以在VS代码设置中进一步指定外部终端命令行,其中一个是默认的os终端,默认为integratedTerminal
,terminal.external.windowsExec
和terminal.external.osxExec
来源:VS Code文档,例如node.js:https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-attributes
答案 1 :(得分:3)
为获得最佳结果,也请避免打开控制台。这是我用Jest调试当前文件的配置:
{
"type": "node",
"request": "launch",
"name": "Jest Test (current)",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [
"--config=jest.config.json",
"--runInBand",
"${relativeFile}",
],
// The vscode console does not support colors used by Jest output
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
}
答案 2 :(得分:2)
v1.45添加了许多调试主题颜色,请参见https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_45.md#new-debug-theme-colors
debugView.exceptionLabelForeground
:调试器因异常而中断时,在CALL STACK视图中显示的标签的前景色
debugView.exceptionLabelBackground
:调试器因异常而中断时,在CALL STACK视图中显示的标签的背景颜色
debugView.stateLabelForeground
:“呼叫堆栈”视图中标签的前景色,显示当前会话或线程的状态
debugView.stateLabelBackground
:“呼叫堆栈”视图中标签的背景颜色,显示当前会话或线程的状态
debugView.valueChangedHighlight
:用于在调试视图(即变量视图)中突出显示值更改的颜色
debugTokenExpression.name
:调试视图(即“变量”或“监视”视图)中显示的令牌名称的前景色
debugTokenExpression.value
:调试视图中显示的令牌值的前景色
debugTokenExpression.string
:调试视图中字符串的前景色
debugTokenExpression.boolean
:调试视图中布尔值的前景色
debugTokenExpression.number
:调试视图中数字的前景色
debugTokenExpression.error
:调试视图中表达式错误的前景色
在v1.46(v1.46 release notes)中,添加了一些调试控制台主题化项目:
debugConsole.infoForeground
:调试控制台中信息消息的前景色debugConsole.warningForeground
:调试控制台中警告消息的前景色debugConsole.errorForeground
:调试控制台中错误消息的前景色debugConsole.sourceForeground
:调试控制台中源文件名的前景色debugConsoleInputIcon.foreground
:调试控制台输入标记图标的前景色答案 3 :(得分:1)
要在Visual Studio中从nodejs输出彩色消息,可以在console.log方法中使用格式化消息。例如:
console.log('\u001b[' + 32 + 'm' + 'hello stack' + '\u001b[0m')
(在Mocha中实施)。 32是颜色代码。您可以在其仓库中找到其他颜色代码和用法示例:https://github.com/mochajs/mocha/blob/9e95d36e4b715380cef573014dec852bded3f8e1/lib/reporters/base.js#L48
或者作为您可以使用的日志库,例如pinojs + pino-pretty模块,您的日志输出将显示为:
答案 4 :(得分:1)
尝试使用npm中的“ colors”包。它非常易于使用,您也可以使用诸如粗体和下划线之类的功能。这是其文档的网址:-https://www.npmjs.com/package/colors
答案 5 :(得分:0)
我的设置,彩色步骤:
{
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"console": "integratedTerminal",
"name": "Cucumber",
"program": "${workspaceFolder}/tests/cucumberjs/node_modules/cucumber/bin/cucumber-js",
"cwd": "${workspaceFolder}/tests/cucumberjs",
"args": [
"--tags=@luke",
"--format=node_modules/cucumber-pretty"
],
"outputCapture": "std"
}
]
}
答案 6 :(得分:0)
添加--colors
参数对我有用。 (我在开玩笑)。
{
"version": "0.2.0",
"configurations": [{
"type": "node",
"name": "vscode-jest-tests",
"request": "launch",
"args": ["--colors"],
"runtimeArgs": [
"--inspect-brk",
"${workspaceRoot}/node_modules/.bin/jest",
"--runInBand"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}]
}
答案 7 :(得分:0)
从Java noob的Java控制台确实又快又脏:
private static void debugLog(String msg) {
if (msg.indexOf("Exception") > -1) {
System.out.println("\u001b[31m" + msg + "\u001b[0m");
} else {
System.out.println("\u001b[32m" + msg + "\u001b[0m");
}
}
答案 8 :(得分:0)
有关知识,请参阅@https://stackoverflow.com/a/55493884/3645650。
这只是一个无脑的答案。
版本 | |
---|---|
测试到 | Visual Studio Code 2021 年 5 月(版本 1.57 ) |
console.log( "\u001b[1;31m Red message" );
console.log( "\u001b[1;32m Green message" );
console.log( "\u001b[1;33m Yellow message" );
console.log( "\u001b[1;34m Blue message" );
console.log( "\u001b[1;35m Purple message" );
console.log( "\u001b[1;36m Cyan message" );
console.log( "\u001b[1;41m Red background" );
console.log( "\u001b[1;42m Green background" );
console.log( "\u001b[1;43m Yellow background" );
console.log( "\u001b[1;44m Blue background" );
console.log( "\u001b[1;45m Purple background" );
console.log( "\u001b[1;46m Cyan background" );
要重置每种样式,您需要应用以下内容:
console.log( "\u001b[0m Reset text and background color/style to default" );
console.log( "\u001b[1;31m --process: Error" + "\u001b[0m" );