Node.js编写的Discord机器人部署到Heroku后进程崩溃如何解决?
Heroku部署Discord机器人启动崩溃解决方案
错误核心原因
日志中明确报错npm ERR! missing script: start,Heroku默认启动Node.js项目时会自动执行npm start命令,你的项目package.json文件未配置对应启动脚本,导致启动失败进程崩溃。你本地执行node .正常是因为手动指定了入口执行逻辑,不需要依赖scripts配置。
修复步骤
- 第一步:配置package.json启动脚本
打开项目根目录的package.json文件,在scripts字段中添加start配置,和你本地执行的node .逻辑保持一致即可,示例如下:{ "scripts": { "start": "node ." } } - 第二步:调整进程类型避免端口检测报错
Discord机器人属于后台工作进程,不需要监听HTTP端口,Heroku默认的web进程会强制检测端口绑定,未绑定会判定进程异常崩溃。操作如下:- 项目根目录新建无后缀的
Procfile文件,写入以下内容:worker: npm start - 代码部署到Heroku后,进入Heroku控制台的对应项目「资源」页面,关闭默认的web进程,开启新增的worker进程。
- 项目根目录新建无后缀的
- 第三步:重新提交代码部署到Heroku,即可正常启动。
内容的提问来源于stack exchange,提问作者Conta
相关产品推荐
相关产品推荐

