如何在 vscode 中访问 tasks.json 中的 .env 变量?
Posted
技术标签:
【中文标题】如何在 vscode 中访问 tasks.json 中的 .env 变量?【英文标题】:How do I access .env variables in tasks.json within vscode? 【发布时间】:2020-01-20 09:01:34 【问题描述】:我正在尝试在vscode
的 C# 项目的 tasks.json
文件中的任务中使用环境变量。
在我的 launch.json
文件中,我有这段代码来解析 .env 文件:
"configurations": [
...
"envFile": "$workspaceFolder/.env",
]
然后我在tasks.json
文件中有这个任务:
"label": "login",
"command": "sh",
"type": "shell",
"args": [
"$workspaceFolder/etc/login.sh",
"$env:USERNAME",
"$env:PASSWORD"
]
这似乎是 https://code.visualstudio.com/docs/editor/tasks 隐含的代码,但是(通过在另一个任务中回显的测试)我发现最后两个 args
是空白的。在网上研究后,我想我找到了原因,configurations..env
被tasks
自己使用,而不是被运行的task.json
访问,因此无法访问。
如何在tasks.json
中创建(使用)这些env variables
?
【问题讨论】:
看看这里***.com/a/70748562/3223785。 ?????? 【参考方案1】:结帐https://code.visualstudio.com/docs/editor/tasks-appendix
/**
* The environment of the executed program or shell. If omitted
* the parent process' environment is used.
*/
env?: [key: string]: string ;
例子
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
"label": "diagnostic",
"type": "shell",
"options":
"cwd": "$workspaceFolder/beam",
"env":
"FOO": "baz",
,
"command": "printenv",
"problemMatcher": []
]
我不知道如何从像 launch.json 这样的文件中提取这些
我会在 vscode repo 上打开一个问题
【讨论】:
【参考方案2】:我遇到了同样的问题。 我正在使用 Windows。 我能够修复它。 我的问题是,在 VSCode 中我设置了这个设置:
"terminal.integrated.automationShell.windows": "C:/Program Files/Git/bin/bash.exe"
这导致环境无法正确加载。 我能够访问 Windows 设置,您可以通过该 Windows GUI 环境变量工具进行设置。但是我无法访问在我的 .bashrc 中设置的环境变量。 我注释掉了那个设置。
我也有终端 > 集成 > 默认配置文件:Windows 设置为 Git Bash。
通过这些更改,我能够访问 .bashrc 文件中的环境变量。
【讨论】:
以上是关于如何在 vscode 中访问 tasks.json 中的 .env 变量?的主要内容,如果未能解决你的问题,请参考以下文章
VSCode仅为许多项目之一创建Launch.json和Tasks.json文件
开发环境Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )
开发环境Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )
开发环境Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )