如何在 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..envtasks 自己使用,而不是被运行的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 编译器构建配置文件分析 )

VSCode 调试

vscode中启动浏览器的tasks.json

开发环境Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )