Как добавить переменные среды в launch.json в VSCode

Работа с новым редактором VSCode в проекте node.js. Я пытаюсь настроить профиль "Запуск" для отладки, отредактировав файл launch.json. Мне нужно настроить connectionstring как переменную среды. Согласно комментариям в файле launch.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 неожиданно завершился". Я еще не нашел файлы журналов и т.д., Которые могли бы объяснить, в чем проблема.

Я знаю, что это приложение работает правильно, когда я настраиваю переменную окружения и запускаю свое приложение из стандартной командной строки. Приложение также работает, как и ожидалось, если я прокомментирую свою переменную в файле launch.json; Я просто не могу подключиться к базе данных.

Я предполагаю, что я использую неправильный формат в файле launch.json, но я еще не нашел способ сделать эту работу.

Любые идеи?

Ответ 1

Кажется, что проблема связана с переменными среды в Windows (и, вероятно, на Linux). Он работает на OS X. Мы расследуем. Ожидайте исправить в ближайшее время.

Андре Вейнанд, Код Visual Studio

Ответ 2

Я успешно передаю их с помощью свойства env в launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
    "type": "node",
    "request": "launch",
    "name": "SLS Webpack",
    "protocol": "legacy",
    "program": "${workspaceRoot}/node_modules/.bin/sls",
    "cwd": "${workspaceRoot}",
    "args": ["webpack", "watch", "-f", "${fileBasenameNoExtension}", "-p", "${fileDirname}/event.json"],
    "env": {"AWS_REGION":"us-east-1", "SLS_DEBUG":"*"},
    "outFiles": ["${cwd}/dist/**/*.js"],
    "sourceMaps": true,
    "smartStep": true    
    }
  ]
}

Ответ 3

в качестве обходного пути вы можете установить переменные среды при запуске VSCode, например, используя эту маленькую powershell script:

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.ps1 и вызовите его из командной строки, например:

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

Ответ 4

Подобно этому, под вашей ОС:

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