在node.js项目中使用新的VSCode编辑器。我试图通过编辑启动来配置我的“启动”配置文件进行调试。json文件。我需要设置一个connectionstring作为环境变量。根据发布会上的评论。json文件:

// Environment variables passed to the program.
"env": { }

我尝试像这样添加环境变量:

"env":
{
"CONNECTION_STRING": "Data Source=server;Initial Catalog=catalog;User ID=uid;Password=pwd;MultipleActiveResultSets=true"
}

这导致错误时,我试图启动我的应用程序;“OpenDebug进程意外终止”。我还没有找到任何日志文件等,可以解释什么是问题。

当我设置环境变量并从标准命令提示符启动我的应用程序时,我知道这个应用程序可以正确工作。如果我在启动时注释掉我的变量,应用程序也会按预期运行。json文件;我无法连接数据库。

我假设我在发布中使用了错误的格式。json文件,但我还没有找到任何方法,使此工作。

什么好主意吗?


当前回答

从2016年底开始,你也可以在Node.js项目中使用envFile:

VS Code Node调试器现在支持从文件中加载环境变量,并将它们传递给节点运行时。https://github.com/Microsoft/vscode/issues/15964

另请参阅:从外部文件(节点)加载环境变量:

要使用这个特性,在你的启动配置中添加一个属性envFile,并指定包含环境变量的文件的绝对路径:

Asp。Net Core项目中,vscode本身不支持这个特性,但它最近被添加到omnissharp vscode扩展中。该功能自2018年9月10日起通过v1.16.0提供。

其他回答

Windows上的环境变量似乎有问题(可能在linux上也是如此)。它在OS x上运行,我们正在调查。预计很快就会修复。

更新(2015年6月2日):Visual Studio Code 0.3.0对此进行了修复。

像这样,在你的操作系统下:

        "osx": {
            "MIMode": "lldb",
            "environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}]
        },

作为一种变通方法,你可以在启动VSCode时设置环境变量,例如,使用这个小powershell脚本:

param(
 $vars = @{}
)

$vars.Keys | % {
    write-host "adding env variable: $_=$($vars[$_])"
    [Environment]::SetEnvironmentVariable($_, $vars[$_], "Process")
}
$ver = "0.1.0"
& "$env:LOCALAPPDATA\Code\app-$ver\Code.exe"

保存为vscode。然后从命令行调用它,就像这样:

powershell ".\vscode.ps1 -vars @{ 'NODE_ENV'='test'; 'SOMETHING'='else' }"

版本1.49.1

您可以在启动时使用env属性添加env变量。json文件或使用envFile属性,其值为你的。env文件的位置。

警告:如果你已经有一个。env文件,它会自动包含它。(根据denislexic评论)

env的例子:

{
  ...
   "env": { "PORT": "4000" }
  ...
}

envFile例子:

{
  ...
  "envFile": "${workspaceFolder}/server/.env",
  ...
}

从2016年底开始,你也可以在Node.js项目中使用envFile:

VS Code Node调试器现在支持从文件中加载环境变量,并将它们传递给节点运行时。https://github.com/Microsoft/vscode/issues/15964

另请参阅:从外部文件(节点)加载环境变量:

要使用这个特性,在你的启动配置中添加一个属性envFile,并指定包含环境变量的文件的绝对路径:

Asp。Net Core项目中,vscode本身不支持这个特性,但它最近被添加到omnissharp vscode扩展中。该功能自2018年9月10日起通过v1.16.0提供。