部署于Heroku的Discord Node.js机器人无法启动问题排查求助
问题解决步骤
- 确认Procfile命名和存放路径完全符合要求
必须满足以下条件:- 文件名为
Procfile,首字母大写P、其余小写,无任何后缀(不能是Procfile.txt、procfile等错误名称) - 存放在项目根目录,和
package.json同级,不能放到src等子目录下 - 没有被
.gitignore规则匹配忽略,可直接在GitHub仓库根目录查看是否能正常显示该文件
- 文件名为
- 清理部署缓存并重新部署
到Heroku控制台的Deploy页面,拉到最底部点击Manual deploy,选择main分支手动触发一次部署,避免自动部署的缓存未识别Procfile变更。 - 检查构建流程是否正常
到Heroku控制台的Activity页面,点击最新部署记录的View build log,确认整个构建过程无报错,如果依赖安装、构建环节失败,Heroku不会更新进程配置,自然无法识别Procfile。 - 手动开启worker进程
部署成功后刷新Resources页面,即可看到worker进程选项,点击右侧开关开启进程即可,Heroku默认不会自动启动worker类型的进程,需要首次手动开启。 - 异常场景修复
如果以上操作完成后仍无法识别Procfile,可做如下处理:- 检查Procfile的换行符格式,Windows系统下默认的CRLF换行符可能导致识别异常,将换行符改为LF后重新提交部署即可
- 安装Heroku CLI后运行命令
heroku ps:scale worker=1 -a 你的Heroku应用名称,强制绑定启动worker进程,命令返回的报错信息可直接定位具体问题。
内容的提问来源于stack exchange,提问作者Shadow0013
相关产品推荐
相关产品推荐

