Heroku部署discord.js音乐机器人遇node-ytdl-core buildpack不兼容报错求解
错误核心原因
你误将ytdl-core这个Node.js第三方依赖包当作了Heroku buildpack添加,才会触发检测失败。合法的Heroku buildpack必须包含bin/detect等标准化构建流程脚本,普通npm包并不具备该结构,因此无法通过buildpack校验。
可行解决方案
- 第一步:移除错误添加的无效buildpack
你可以通过Heroku CLI执行命令heroku buildpacks:remove https://github.com/fent/node-ytdl-core.git完成移除,也可以直接进入Heroku项目控制台的设置页面,在Buildpacks板块手动删除该地址。 - 第二步:将
ytdl-core加入项目依赖
在本地项目根目录执行npm install ytdl-core,npm会自动将该包的依赖信息写入package.json与package-lock.json,将这两个文件一并提交到你的代码仓库即可。 - 第三步:确认添加了官方Node.js buildpack
正常情况下Heroku检测到项目根目录的package.json会自动配置官方Node.js buildpack,若未自动配置可以通过CLI执行heroku buildpacks:add heroku/nodejs手动添加。 - 第四步:重新推送代码到Heroku即可完成部署,Heroku会自动安装
package.json中声明的所有依赖,不需要单独将依赖包设置为buildpack。
补充说明
如果你的音乐机器人需要ffmpeg支持,需要额外添加ffmpeg的官方Heroku buildpack,不要将ffmpeg相关npm依赖和buildpack混淆。
内容的提问来源于stack exchange,提问作者Therogamer
相关产品推荐
相关产品推荐

