Working with the new VSCode editor on a node.js project. I am attempting to configure my \"Launch\" profile for debugging by editing the launch.json file. I need to setup a
On june 2020 this is still very misleading and broken on OSX Catalina 10.15.5. I am using VSCode insiders with CodeLLDB extension version 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
When launching the debugger with the env
keyword on launch.json
I get this:
So in a nutshell, using "env"
directive in launch.json
will show up the message in the screenshot. This will prevent running the debugger, surprising lacking feature, but fair enough.
But then, using environment
instead of env
, there's no error message popping up but the environment variables are not available on the runtime being debugged, so getenv(whatever)
does not return the actual value for that key :-!
There seems to be a problem with environment variables on Windows (and probably on linux). It does work on OS X. We are investigating. Expect a fix soon.
Update (June 2, 2015): Visual Studio Code 0.3.0 contains a fix for this.
this is working
just add the following
"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"
}
}
]
Version 1.49.1
You can add env variables by using the env
property in your launch.json file or by using the envFile
property with the value being the location of your .env file.
env example:
{
...
"env": { "PORT": "4000" }
...
}
envFile example:
{
...
"envFile": "${workspaceFolder}/server/.env",
...
}
as a workaround, you can set environment variables when starting VSCode, for example, using this little 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"
Save it as vscode.ps1
and call it from commandline, like this:
powershell ".\vscode.ps1 -vars @{ 'NODE_ENV'='test'; 'SOMETHING'='else' }"
Like this, under your OS:
"osx": {
"MIMode": "lldb",
"environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}]
},