Работа с новым редактором VSCode над проектом node.js. Я пытаюсь настроить свой профиль «Запуск» для отладки путем редактирования файла launch.json. Мне нужно настроить строку подключения в качестве переменной среды. Согласно комментариям в файле 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, но я еще не нашел способа заставить эту работу работать.
Любые идеи?
источник
Property env is not allowd in launch.json
env
был переименован вenvironment
в текущих версиях VSCode, синтаксис также изменен. См. Сообщение @Gabriel ниже.это работает
просто добавьте следующее
"env": {"NODE_ENV": "development"}
"configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", //TODO: cmd as launch program "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}\\index.js", "env": { "NODE_ENV": "development" } } ]
источник
Вот так, под вашей ОС:
"osx": { "MIMode": "lldb", "environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}] },
источник
cppdbg
в моем случае)С конца 2016 года вы также можете использовать
envFile
для проектов Node.js :Также см .: Загрузить переменные среды из внешнего файла (узла) :
Для проектов Asp.Net Core эта функция изначально не поддерживается vscode, но недавно была добавлена в расширение vscode omnisharp. Эта функция доступна с 10 сентября 2018 г. в версии 1.16.0 .
источник
"args": ["-p", "${SERVER_PORT}"]
вместе"envFile": "${workspaceFolder}/.env"
, но похоже"${SERVER_PORT}"
, не работаетУ меня была такая же проблема, и оказалось, что у меня был
.env
файл в корне моего проекта, который переопределялlaunch.json
настройки. ВАС ВНИМАТЕЛЬНО. :)источник
Для справки, я столкнулся с аналогичной проблемой (в 2020 году, спустя много времени после того, как ошибка, упомянутая в принятом ответе выше, была исправлена) для другого языка и хотел бы указать на кое-что:
Согласно документации Microsoft по конфигурациям запуска, многие общие параметры, в том числе
"env"
не требуемые функции для всех различных сред отладки / запуска, то есть мне кажется, что это не VS Code, который «предоставляет» возможность для переменных среды, а скорее выбор конкретного расширения отладчика для реализации этой функции. Следовательно, либоProperty "env" is not allowed
может возникнуть из-за того, что конкретный язык / отладчик, который вы используете, не поддерживает или не реализовал обработку переменных среды.
Как сказал qbiq, возможно, быстрое решение этой проблемы, если переменные среды не будут меняться при запуске, - это их экспорт и запуск VS Code с этим конкретным набором переменных.
источник
Версия 1.49.1
Вы можете добавить переменные env, используя
env
свойство в файле launch.json или используяenvFile
свойство, значение которого является местоположением вашего файла .env.пример env:
{ ... "env": { "PORT": "4000" } ... }
Пример envFile:
{ ... "envFile": "${workspaceFolder}/server/.env", ... }
источник
В качестве обходного пути вы можете установить переменные среды при запуске 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.ps1
и вызовите из командной строки, например:powershell ".\vscode.ps1 -vars @{ 'NODE_ENV'='test'; 'SOMETHING'='else' }"
источник
В июне 2020 года это все еще вводит в заблуждение и не работает в OSX Catalina 10.15.5. Я использую инсайдеров VSCode с расширением CodeLLDB версии 1.5.3 :
Version: 1.47.0-insider Commit: 0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69 Date: 2020-06-23T09:38:28.751Z (1 day ago) Electron: 8.3.3 Chrome: 80.0.3987.165 Node.js: 12.13.0 V8: 8.0.426.27-electron.0 OS: Darwin x64 19.5.0
При запуске отладчика с
env
ключевым словом onlaunch.json
я получаю следующее:Вкратце, использование
"env"
директивы вlaunch.json
отобразит сообщение на снимке экрана. Это предотвратит запуск отладчика, что, на удивление, не хватает функции, но достаточно справедливо.Но тогда, используя
environment
вместоenv
, сообщение об ошибке не появляется, но переменные среды недоступны в отлаживаемой среде выполнения, поэтомуgetenv(whatever)
не возвращает фактическое значение для этого ключа: -!источник