programing

VSCode에서 환경 변수를 launch.json에 추가하려면 어떻게 해야 합니까?

batch 2023. 4. 1. 08:37
반응형

VSCode에서 환경 변수를 launch.json에 추가하려면 어떻게 해야 합니까?

node.js 프로젝트에서 새로운 VSCode 편집기로 작업.launch.json 파일을 편집하여 디버깅용으로 "Launch" 프로파일을 설정하려고 합니다.연결 문자열을 환경 변수로 설정해야 합니다.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 파일에서 잘못된 포맷을 사용하고 있는 것 같습니다만, 아직 실행 방법을 찾지 못했습니다.

좋은 생각 있어요?

env합니다.launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": [
        "<node_internals>/**"
      ],
      "program": "${workspaceFolder}/index.js",
      "env": {
        "TEST_VAR": "foo"
      }
    }
  ]
}

이것은 동작하고 있다

여기에 이미지 설명 입력

다음 항목만 추가해 주세요.

"env": {"NODE_ENV": "개발"}

"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Launch Program", //TODO: cmd as launch program
        "skipFiles": [
            "<node_internals>/**"
        ],
        "program": "${workspaceFolder}\\index.js",
        "env": {
            "NODE_ENV": "development"
        }
    }
]

버전 1.49.1

하려면 env를 합니다.env launch.json을 을 합니다.envFile파일의 .부러워하다

경고:.env 파일이 이미 있는 경우 자동으로 포함됩니다.(데니플렉스 코멘트 단위)

env 예:

{
  ...
   "env": { "PORT": "4000" }
  ...
}

env File의 예:

{
  ...
  "envFile": "${workspaceFolder}/server/.env",
  ...
}

Windows(및 Linux) 환경변수에 문제가 있는 것 같습니다.OS X에서는 동작합니다.조사 중입니다.곧 고쳐지길 기대하세요.

갱신 (2015년 6월 2일) :Visual Studio Code 0.3.0에는 이에 대한 수정 사항이 포함되어 있습니다.

OS에서는 다음과 같이 동작합니다.

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

부터 2016년식 합니다.envFile Node.js 프로젝트의 경우:

VS 코드 노드 디버거는 이제 파일에서 환경 변수를 로드하여 노드 런타임에 전달하는 기능을 지원합니다.https://github.com/Microsoft/vscode/issues/15964

참고 항목: 외부 파일(노드)에서 환경 변수 로드:

이 기능을 사용하려면 실행 Configuration에 envFile 속성을 추가하고 환경변수를 포함하는 파일에 대한 절대 경로를 지정합니다.

ASP용Net Core 프로젝트에서는 기본적으로 vscode에서 이 기능을 지원하지 않지만 최근 옴니샤프 vscode 확장에 추가되었습니다.이 기능은 v1.16.0을 통해 2018년 9월 10일부터 사용할 수 있습니다.

....env을 저장하여 프로젝트 루트는 루트보다 합니다.launch.json설정을 지정합니다. :) ★★★★★★★★★ : ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

참고로, 다른 언어에 대해서도 유사한 문제(2020년, 상기의 인정된 답변에 기재된 버그가 수정되고 나서 한참 후에)를 발견했는데, 다음과 같은 점을 지적하고 싶습니다.

기동 설정에 관한 Microsoft 메뉴얼에 근거해, 다음과 같은 많은 일반적인 옵션을 참조해 주세요."env"모든 디버깅/실행 환경에 필요한 기능은 아닙니다.즉, 환경변수 옵션을 제공하는 것은 VS Code가 아니라 이 기능을 구현하기 위한 특정 디버거 확장을 선택하는 것으로 보입니다.그 때문에, 어느 쪽인가 하면,

  • 디버깅 응용 프로그램의 예기치 않은 크래시
  • .Property "env" is not allowed

사용 중인 특정 언어/어플리케이션이 환경변수 처리를 지원하지 않거나 구현하지 않았기 때문에 발생할 수 있습니다.

qbiq에서 설명한 바와 같이 실행 후에도 환경변수가 변경되지 않는 경우 이를 위한 빠른 회피책은 이러한 변수를 내보내고 이 특정 변수 집합을 사용하여 VS Code를 실행하는 것입니다.

제 장고 프로젝트에서는 잘 작동했어요.envFile변수.다음 링크를 체크할 수 있습니다.https://code.visualstudio.com/docs/editor/debugging

{
   "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/project/manage.py",
            "args": [
                "runserver"
            ],
            "django": true,
            "envFile": "${workspaceFolder}/project/Server/settings/local.env"
        }
    ]
}

OSX Catalina 10.15.5에서는 2020년 6월에도 매우 오해의 소지가 있어 파손되어 있습니다.VSCode 내부자를 CodeLDB 확장 버전 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 on " " "launch.json★★★★★★★★★★★★★★★★★★.

여기에 이미지 설명 입력

한마디로 말하면"env"를 지정합니다.launch.json스크린샷에 메시지가 나타납니다.이렇게 하면 디버거를 실행할 수 없게 됩니다.놀랍게도 기능이 부족하지만 충분히 공평합니다.

그 but만음음음음을 environmentenv에러 메시지는 표시되지 않지만 디버깅되는 런타임에는 환경변수를 사용할 수 없습니다.getenv(whatever)는, 그 하지 않습니다 :-! - 。

해결 방법으로는 다음과 같은 작은 powershell 스크립트를 사용하여 VSCode를 시작할 때 환경 변수를 설정할 수 있습니다.

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' }"

언급URL : https://stackoverflow.com/questions/29971572/how-do-i-add-environment-variables-to-launch-json-in-vscode

반응형