在 VS Code-debugger 中,如何将 launch.json 中的 envFile 用于 nodejs?

Huc*_*nan 5 debugging node.js visual-studio-code vscode-debugger dotenv

我正在尝试在我的 nodejs 应用程序上的 VS Code 中运行调试器。我正在使用 .env 文件来存储我稍后使用 process.env 调用的环境变量。不幸的是,当我运行调试器时,这并没有加载文件。

启动.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "RegressionTestSuite",
            "autoAttachChildProcesses": true,
            "program": "node ${workspaceFolder}/node_modules/.bin/cucumber-js",
            "args": [
            ],
            "envFile": "${workspaceFolder}/.env"
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

.env:

export SCREEN_SIZE_WIDTH='1366';
export SCREEN_SIZE_HEIGHT='768';
Run Code Online (Sandbox Code Playgroud)

当我运行 VS Code 调试器时,我的 .env 文件中没有环境变量。我应该如何调用 launch.json 中的 .env 文件?


我应该在我让它工作之后添加更多信息:

我最终使我的 .env 文件成为环境变量列表

.env 文件示例:

# Standard supported size is width='1366, height=768
SCREEN_SIZE_WIDTH='1366'
SCREEN_SIZE_HEIGHT='768'
EPAY_GUI_AUTOMATION_TEST_DEBUG_MODE='yadda_yadda_yadda'
Run Code Online (Sandbox Code Playgroud)

在我的 nodejs 世界构造函数中,我包括

world.js 示例:

enter code here`enter code here`require('dotenv').config();
process.env.EPAY_GUI_AUTOMATION_TEST_DEBUG_MODE
Run Code Online (Sandbox Code Playgroud)

在我使用的 hook.js 中:

BeforeAll(async function() {
    this.browser = await puppeteer.launch({
        headless: (process.env.HEADLESS === 'true'),
        slowMo: parseInt(process.env.SLOWMO),
        defaultViewport: {
            width: parseInt(process.env.SCREEN_SIZE_WIDTH),
            height: parseInt(process.env.SCREEN_SIZE_HEIGHT)
        }
    });
.
.
.
Run Code Online (Sandbox Code Playgroud)

我保持launch.json不变。

小智 12

您可以尝试加载 env 文件。

 {
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}\\Chat\\server.js",
      "envFile": "${workspaceFolder}\\Chat\\.env"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)


aus*_*nce 8

我将使用dotenv包来加载您的.env文件,因为不使用 VS Code 的人也可以使用它。如果你想将它包含在 VS Code 配置中,你可以这样做:

{
  "version": "0.2.0",
  "configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "RegressionTestSuite",
        "autoAttachChildProcesses": true,
        "program": "node -r dotenv/config ${workspaceFolder}/node_modules/.bin/cucumber-js",
        "args": []
     },
   ]
}
Run Code Online (Sandbox Code Playgroud)

您的问题也可能是您的.env文件不应包含export和 分号,因为它不是 JavaScript/shell 文件:

SCREEN_SIZE_WIDTH=1366
SCREEN_SIZE_HEIGHT=768
Run Code Online (Sandbox Code Playgroud)