如何在生产环境(Heroku)中调试在本地环境下运行良好的代码?

作者 : IT 大叔 本文共973个字,预计阅读时间需要3分钟 发布时间: 2020-09-8

就像我在Twitter上所说的那样,对我来说最令人沮丧的事情之一就是修复在本地环境中可以完美运行的代码,并且将其托管在云中(在我的情况下是Heroku),它将停止工作。

到目前为止,我一直在处理它的方式是回到我的代码,植入一些console.log代码,将代码推送到我在Heroku上托管的任何回购中,并检查Heroku日志heroku logs --tail --app {{NAME_OF_YOUR_APP}}。这是一个繁琐,不可扩展且耗时的噩梦。

我认为必须有更好的方法,所以我从字面上搜索了add debuggers code hosted heroku。我找到了这个Stackoverflow答案,而这正是我想要的。您可以按照此处的步骤进行操作,并且可以在VSCode植入断点中调试代码。总结一下我的理解:

  1. 您使用heroku CLI连接到dyno: heroku ps:exec -app {{my-app-name}}
  2. 您设置了远程调试

2.i. 创建一个Procfile文件(无扩展名)并添加以下行:web: node --inspect index.js

2.ii. 部署代码并在命令行中运行以下命令:(heroku ps:forward 9229 -app {{my-app-name}}端口号取决于您)。
2.iii。在您的文本编辑器中设置调试环境。就我而言,VSCode是在运行调试器时使用以下设置保存的配置:

{
    "type": "node",
    "request": "attach",
    "name": "Heroku",
    "address": "localhost",
    "port": 9229,
    "protocol": "inspector",
    "localRoot": "${workspaceFolder}",
    "remoteRoot": "/app"
},

它对我有用-我能够在代码中放置断点,并查看执行冻结以进行检查(例如在本地环境中)。由于某些原因,设置断点时看不见小红点,但是无论如何它还是可以工作的。

希望它也对您有用!和往常一样,如果我告诉废话,请在评论中让我知道。

ps:我看到一段时间不活动后,它断开了连接。当再次在VSCode上运行调试器时,请确保heroku ps:forward 9229 -app {{my-app-name}}再次运行。否则,会弹出一个难看的错误警报,提示您无法建立连接

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 如何在生产环境(Heroku)中调试在本地环境下运行良好的代码?

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论