arb*_*arb 5 visual-studio-code vscode-extensions
我正在开发VSCode扩展,并且我想编写一个简单的日志记录实用程序,该实用程序仅在调试期间记录到控制台,否则,它是无操作的。
扩展中某处是否有标志或值表示调试正在进行中?
小智 6
如果有人仍然需要它,一种解决方案是在调试模式下启动客户端时使用自定义环境变量。
在您的launch.json文件中:
{
"type": "extensionHost",
"request": "launch",
"name": "Launch Client",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}"],
"outFiles": ["${workspaceRoot}/client/out/**/*.js"],
"env": {
"VSCODE_DEBUG_MODE": "true"
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样在代码中检查它:
const isDebugMode = () => process.env.VSCODE_DEBUG_MODE === "true";
export function activate(context: ExtensionContext) {
if (isDebugMode()) {
// Debug ...
} else {
// Else ...
}
}
Run Code Online (Sandbox Code Playgroud)
似乎不受官方支持:https ://github.com/Microsoft/vscode/issues/10077
无论如何,我发现了这种平静的代码,不知道它有多好:
function startedInDebugMode() {
let args = process.execArgv;
if (args) {
return args.some((arg) => /^--debug=?/.test(arg) || /^--debug-brk=?/.test(arg));
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |