通过 VS Code 启动时为 Node JS 设置 env var



我有 Node JS Azure 函数,当我在本地运行时需要NODE_TLS_REJECT_UNAUTHORIZED=0环境变量需要设置才能让我的代码工作。这是因为我正在连接到在我的计算机上本地运行的模拟 Cosmos DB,该数据库需要 Node 允许自签名证书。

当我在本地运行时,我只想要这个环境变量设置,就像在生产中一样,我将使用一个真实的(即非模拟的)Cosmos DB 实例。与其在我的代码(或节点 Azure 函数的等效代码)中放置和#if debug,我希望我的 VS Code 项目在启动时设置 env var。

我尝试遵循此答案建议,但是当 VS Code 启动程序时,未设置环境变量,因为我在代码中收到有关自签名证书未授权的运行时错误。我的launch.json如下所示:

{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Node Functions",
"type": "node",
"request": "attach",
"port": 9229,
"preLaunchTask": "func: ",
},
],
"environment": [{
"name": "NODE_TLS_REJECT_UNAUTHORIZED",
"value": "0"
}],
}

如果我使用process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0直接在代码中设置 env var,一切都很好。我不知道如何让 VS Code 来设置它,或者是否有可能。

请更新

"environment": [{ "name": "NODE_TLS_REJECT_UNAUTHORIZED", "value": "0" }],

待成为

"env": { "name": "NODE_TLS_REJECT_UNAUTHORIZED", "value": "0" },

另外,请检查替代方案。

您可以更新package.json脚本以在启动时添加所有环境变量,例如"runLocal": "NODE_TLS_REJECT_UNAUTHORIZED=0 ... your start code "或者您可以使用名为dotenv的第三方库

这就是它的工作原理

01-创建.env文件

02-写入所有环境变量key=valNODE_TLS_REJECT_UNAUTHORIZED=0

03-更新package.json脚本以添加"runLocal": "NODE_ENV=dev ... your start code "

04-检查节点NODE_ENV是否相等dev然后加载dotenv

05-在节点环境是本地的情况下导入模块并调用配置函数require('dotenv').config()

最新更新