[json] 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 파일에서 잘못된 형식을 사용하고 있다고 가정하고 있지만 아직이 작업을 수행 할 방법을 찾지 못했습니다.
어떤 아이디어?
답변
Windows (및 Linux)에서 환경 변수에 문제가있는 것 같습니다. OS X에서 작동합니다. 조사 중입니다. 곧 수정 될 것으로 예상됩니다.
업데이트 (2015 년 6 월 2 일) : Visual Studio Code 0.3.0에는 이에 대한 수정 사항이 포함되어 있습니다.
답변
나는 env
속성을 사용하여 성공적으로 전달하고 있습니다 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
}
]
}
답변
이것은 효과가있다
다음을 추가하십시오
“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"
}
}
]
답변
이와 같이 OS에서 :
"osx": {
"MIMode": "lldb",
"environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}]
},
답변
2016 년 말부터 envFile
Node.js 프로젝트 에도 사용할 수 있습니다 .
VS Code Node 디버거는 이제 파일에서 환경 변수를로드하고이를 노드 런타임에 전달하도록 지원합니다. https://github.com/Microsoft/vscode/issues/15964
참조 : 외부 파일 (노드)에서 환경 변수로드 :
이 기능을 사용하려면 시작 구성에 envFile 속성을 추가하고 환경 변수가 포함 된 파일의 절대 경로를 지정합니다.
Asp.Net Core 프로젝트 의 경우이 기능 은 vscode에서 기본적으로 지원되지 않지만 최근 omnisharp vscode 확장에 추가되었습니다. 이 기능은 2018 년 9 월 10 일부터 v1.16.0을 통해 사용할 수 있습니다 .
답변
나는 똑같은 문제가 있었고 .env
내 프로젝트 루트에 launch.json
설정 을 재정의 하는 파일 이 있음이 밝혀졌습니다 . 경고를 받았습니다. 🙂
답변
참고로, 다른 언어에 대해 비슷한 문제 (2020 년, 위의 답변에 언급 된 버그가 수정 된 지 오래됨)를 발견했으며 무언가를 지적하고 싶습니다.
에 accoding의 마이크로 소프트의 문서 , 발사 구성, 많은 일반적인 옵션에 포함 "env"
되지 않습니다 requried , 환경 변수에 대한 옵션을 ‘제공한다’고 VS 코드 아니라고 보인다,라고하는 것입니다 – 모든 다른 디버깅 / 실행 환경을위한 기능을 오히려이 기능을 구현하기위한 특정 디버거 확장의 선택입니다. 따라서
- 디버깅 응용 프로그램의 예기치 않은 충돌
- 경고
Property "env" is not allowed
사용중인 특정 언어 / 디버거가 환경 변수 처리를 지원하지 않거나 구현하지 않았기 때문에 발생할 수 있습니다.
qbiq가 말했듯이 환경 변수가 실행 중에 변경되지 않는 경우 이에 대한 빠른 해결 방법은 해당 변수를 내보내고 특정 변수 세트로 VS 코드를 실행하는 것입니다.