Jas*_*ble 49 json node.js visual-studio-code
在node.js项目上使用新的VSCode编辑器.我试图通过编辑launch.json文件来配置我的"启动"配置文件以进行调试.我需要将connectionstring设置为环境变量.根据launch.json文件中的注释:
// Environment variables passed to the program.
"env": { }
Run Code Online (Sandbox Code Playgroud)
我试过像这样添加我的环境变量:
"env":
{
"CONNECTION_STRING": "Data Source=server;Initial Catalog=catalog;User ID=uid;Password=pwd;MultipleActiveResultSets=true"
}
Run Code Online (Sandbox Code Playgroud)
当我尝试启动我的应用时,这会导致错误; "OpenDebug进程意外终止".我还没有找到任何可能解释问题的日志文件等.
我知道当我设置环境变量并从标准命令提示符启动我的应用程序时,此应用程序正常工作.如果我在launch.json文件中注释掉我的变量,应用程序也会按预期运行; 我只是无法连接到数据库.
我假设我在launch.json文件中使用了错误的格式,但我还没有找到任何方法来使这项工作.
有任何想法吗?
小智 54
我使用以下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
}
]
}
Run Code Online (Sandbox Code Playgroud)
Alj*_*aro 47
这是工作
只需添加以下内容
"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"
}
}
]
Run Code Online (Sandbox Code Playgroud)
And*_*and 13
Windows上的环境变量似乎存在问题(可能在Linux上).它适用于OS X.我们正在调查.期待很快修复.
Visual Studio Code的Andre Weinand
Isa*_*Pak 12
版本 1.49.1
您可以通过使用envlaunch.json 文件中的envFile属性或使用值为 .env 文件位置的属性来添加 env 变量。
警告:如果您已经有一个 .env 文件,它会自动包含它。(根据非阅读评论)
环境示例:
{
...
"env": { "PORT": "4000" }
...
}
Run Code Online (Sandbox Code Playgroud)
envFile 示例:
{
...
"envFile": "${workspaceFolder}/server/.env",
...
}
Run Code Online (Sandbox Code Playgroud)
小智 10
它使用该变量适用于我的 django 项目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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
像这样,在您的操作系统下:
"osx": {
"MIMode": "lldb",
"environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}]
},
Run Code Online (Sandbox Code Playgroud)
从2016年末开始,您还可以将envFile for.Node.js项目用于:
VS代码节点调试器现在支持从文件加载环境变量,并将其传递给节点运行时。https://github.com/Microsoft/vscode/issues/15964
另请参阅:从外部文件(节点)加载环境变量:
要使用此功能,请将属性envFile添加到启动配置,并指定包含环境变量的文件的绝对路径:
对于Asp.Net Core项目,vscode 本身不支持此功能,但最近已将其添加到omnisharp vscode扩展中。此功能自2018年9月10日起通过v1.16.0提供。
作为参考,我遇到了针对不同语言的类似问题(在 2020 年,在上面接受的答案中提到的错误得到修复很久之后),并想指出一些事情:
根据微软关于启动配置的文档,许多常见选项,包括所有不同调试/运行环境"env"都不需要的功能- 也就是说,在我看来,VS Code“提供”了环境变量的选项,而是选择特定的调试器扩展来实现此功能。因此,要么
Property "env" is not allowed可能会发生,因为您使用的特定语言/调试器不支持或尚未实现环境变量的处理。
正如 qbiq 所说,如果环境变量不会在启动过程中发生变化,那么一个快速解决方法可能是导出它们并使用这组特定的变量集运行 VS Code。