我正在使用VSCode调试器,并通过env
属性设置环境变量。我还具有需要设置为env vars的数据库密码和机密信息,但我想签入launch.json
,以便可以在团队之间共享调试设置。
有没有一种方法可以设置这些敏感的环境变量进行调试,而无需将其实际检查到源代码管理中?
答案 0 :(得分:0)
我为此使用了一种解决方法,即使用dotenv
包。
因此,它们不是从VSCode加载环境变量,而是从应用程序本身内部加载。
答案 1 :(得分:0)
有几种方法可以在 launch.json 中从 Visual Studio Code (vscode) 中引用敏感数据,而无需将数据包含在 launch.json 文件中。
vscode Variables Reference 很好地记录了这些解决方案。
您可以将敏感变量放在环境变量中(例如,可能通过您的 shell 配置文件加载,例如在 .bash_profile
中)。然后,您可以“通过 ${env:Name}
语法(例如,${env:USERNAME}
)”引用它。
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"cwd": "${workspaceFolder}",
"args": ["${env:USERNAME}"]
}
您可以通过定义 promptString
输入类型在启动时提示敏感信息,如下面从文档中提取的配置所示。下面的 ${input:componentName}
用作参数,并在下面的 inputs
部分中定义为 promptString
,用于在您运行相关任务时提示您输入值。
{
"version": "2.0.0",
"tasks": [
{
"label": "ng g",
"type": "shell",
"command": "ng",
"args": ["g", "${input:componentType}", "${input:componentName}"]
}
],
"inputs": [
/** skipping componentType definition for brevity -- see docs for that */
{
"type": "promptString",
"id": "componentName",
"description": "Name your component.",
"default": "my-new-component"
}
]
}
promptString
的定义如下:
您还可以运行自定义命令来获取输入。文档使用以下配置作为示例。请注意,与其他输入类型一样,必须在 inputs
部分中使用 type
定义命令。
{
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Run specific test",
"program": "${workspaceFolder}/${input:pickTest}"
}
],
"inputs": [
{
"id": "pickTest",
"type": "command",
"command": "extension.mochaSupport.testPicker",
"args": {
"testFolder": "/out/tests"
}
}
]
}
command
类型的其他选项是: