我可以使用 VSCode 在本地运行/调试 Heroku Node.js 应用程序吗?

JP *_*ura 6 heroku node.js visual-studio-code


TL; DR

在Microsoft VSCode v1.6.1上,如何:

  1. 正确设置运行时可执行文件?
  2. 正确传递Heroku 参数
  3. 运行Heroku Node.js应用程序?
  4. 调试Heroku Node.js应用程序?

细节

我创建了一个Heroku Node.js应用程序,该应用程序使用 CLI 命令启动:

heroku local web
Run Code Online (Sandbox Code Playgroud)

并在端口 5000 成功启动。

我正在尝试使用Microsoft Visual Studio Code进行调试,使用以下launch.json配置:

{
    "name": "Launch",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/app.js",
    "stopOnEntry": false,
    "args": [],
    "cwd": "${workspaceRoot}",
    "preLaunchTask": null,
    "runtimeExecutable": "/usr/local/bin/heroku",
    "runtimeArgs": [
        "local web",
    ],
    "env": {
        "NODE_ENV": "development"
    },
    "console": "internalConsole",
    "sourceMaps": false,
    "outFiles": []
}
Run Code Online (Sandbox Code Playgroud)

但是 VSCode 会自动将--debug-brk参数传递给 heroku,从而导致错误:

/usr/local/bin/heroku --debug-brk=23080 'local web' app.js 
    !    `--debug-brk=23080` is not a heroku command.
    !    See `heroku help` for a list of available commands.
Run Code Online (Sandbox Code Playgroud)

VSCode 也找不到没有完整路径的 heroku 命令(看起来它没有加载PATH环境变量)。

关于如何设置编辑器有什么想法吗?

Pab*_*blo 3

以下解决方案对我有用:

1)在您的procfile中将参数--debug添加到节点进程

web: node --debug server.js
Run Code Online (Sandbox Code Playgroud)

默认情况下,调试器侦听端口 5858

2) 节点进程运行后,打开 VSCode 并将以下配置添加到 launch.json 文件中

{
 "type": "node",
 "request": "attach",
 "name": "Attach to Process",
 "port": 5858
}
Run Code Online (Sandbox Code Playgroud)

3) 最后,单击 VSCode 中的播放按钮并选择“附加到进程”,它应该会调试您的进程。