web-dev-qa-db-ja.com

VSCodeでlaunch.jsonに環境変数を追加する方法

Node.jsプロジェクトで新しいVSCodeエディターを使用します。 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ファイルで間違った形式を使用していると想定していますが、この作業を行う方法はまだ見つかりません。

何か案は?

43
Jason Kibble

Windows(およびおそらくLinux)の環境変数に問題があるようです。 OS Xで動作します。調査中です。すぐに修正される予定です。

アンドレ・ヴァイナンド、
Visual Studioコード

更新(2015年6月2日): Visual Studio Code 0.3.0には、この修正が含まれています。

13
Andre Weinand

launch.jsonenvプロパティを使用してそれらを正常に渡します。

{
  "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    
    }
  ]
}
47
btburton42

このように、OSの下で:

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

2016年後半以降、Node.jsプロジェクトでenvFileを使用することもできます

VS Code Nodeデバッガーは、ファイルから環境変数をロードしてノードランタイムに渡すことをサポートするようになりました。 https://github.com/Microsoft/vscode/issues/15964

参照: 外部ファイル(ノード)から環境変数を読み込む

この機能を使用するには、属性envFileを起動構成に追加し、環境変数を含むファイルへの絶対パスを指定します。

Asp.Net Coreプロジェクトの場合、この機能 ネイティブでサポートされていません vscodeにより、 最近 omnisharp vscode拡張機能に追加されました。この機能は、2018年9月10日から v1.16. で利用できます。

4
B12Toaster

回避策として、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' }"
2
qbik