如何让Heroku识别Distube?解决npm安装@distube/soundcloud版本不存在报错
解决Heroku部署Distube时依赖安装失败问题
问题描述
部署Heroku时遇到依赖安装失败,具体报错:
-----> 安装依赖项 安装Node模块(package.json) npm ERR! code ETARGET npm ERR! notarget 未找到匹配版本的@distube/soundcloud@^0.8.0。 npm ERR! notarget 大多数情况下,您或您的某个依赖项请求了一个不存在的包版本。 npm ERR! 本次运行的完整日志可在以下位置找到: npm ERR! /tmp/npmcache.iyUJC/_logs/2022-10-15T23_44_56_907Z-debug-0.log -----> 构建失败 很抱歉本次构建失败!您可在此排查常见问题: https://devcenter.heroku.com/articles/troubleshooting-node-deploys 如果您遇到困难,请提交工单获取帮助: https://help.heroku.com/
解决方案
- 先确认
@distube/soundcloud的可用版本,在本地执行:
从返回结果里挑选一个存在的稳定版本号。npm view @distube/soundcloud versions - 修改项目根目录的
package.json,将@distube/soundcloud的版本号替换为上一步找到的有效版本,比如如果可用版本最高是0.7.5,就把^0.8.0改成^0.7.5。 - 清除npm本地缓存,避免缓存的无效版本信息干扰:
npm cache clean --force - 删除项目里的
package-lock.json和node_modules文件夹,然后重新安装依赖:rm -rf package-lock.json node_modules npm install - 将更新后的
package.json、package-lock.json提交到代码仓库,重新触发Heroku部署。 - 额外注意:确保
@distube/soundcloud的版本和你使用的distube主包版本兼容,版本不匹配也可能导致安装失败。
内容的提问来源于stack exchange,提问作者lady
相关产品推荐
相关产品推荐

