2015-04-30 13 views
11

Praca z nowym edytorem VSCode w projekcie node.js. Próbuję skonfigurować profil "Uruchom" do debugowania, edytując plik launch.json. Muszę skonfigurować ciąg połączenia jako zmienną środowiskową. Według komentarzy w pliku launch.json:Jak dodać zmienne środowiskowe do launch.json w VSCode

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

Próbowałem dodając moja zmienna tak:

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

Powoduje to błąd, gdy próbuję uruchomić mój app; "Proces OpenDebug został nieoczekiwanie zakończony". Nie znalazłem jeszcze żadnych plików dziennika itp., Które mogłyby wyjaśnić, na czym polega problem.

Wiem, że ta aplikacja działa poprawnie po skonfigurowaniu zmiennej środowiskowej i uruchomieniu aplikacji ze standardowego wiersza polecenia. Aplikacja działa również zgodnie z oczekiwaniami, jeśli skomentuję moją zmienną w pliku launch.json; Po prostu nie mogę połączyć się z bazą danych.

Zakładam, że używam niewłaściwego formatu w pliku launch.json, ale nie znalazłem jeszcze żadnego sposobu, aby to zadziałało.

Wszelkie pomysły?

+0

Visual Studio kod 0.3.0 ustaliła to. –

Odpowiedz

5

Wygląda na to, że problem dotyczy zmiennych środowiskowych w systemie Windows (i prawdopodobnie w systemie Linux). Działa na OS X. Prowadzimy dochodzenie. Oczekuj poprawki wkrótce.

Andre Weinand, wizualna Code Studio

+1

Kod Visual Studio 0.3.0 naprawił to. –

+0

jest to ponownie zepsute w 0.9.2 na OSX? Ustawienie "env", ale nie pojawiają się one w procesie. Pracował we wcześniejszych wersjach, przynajmniej w systemie Windows. – antfx

+1

Właśnie sprawdziłem, że ustawienie env vars w VS Code 0.9.2 na OS X działa. Jeśli to nie działa, proszę zgłosić błąd z powtarzalnymi czynnościami tutaj: https://code.visualstudio.com/Issues/List –

2

jako obejście, można ustawić zmienne środowiskowe podczas uruchamiania VSCode, na przykład za pomocą tego małego skryptu 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" 

zapisać go jako vscode.ps1 i rozmowy z wiersza poleceń, tak:

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

Udało mi się przekazać je za pomocą env nieruchomość w 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  
    } 
    ] 
} 
0

Podobnie jak ten, pod tobą OS:

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