开发Discord音乐机器人执行npm i时@discordjs/opus安装失败问题问询
故障原因
本次报错由两个问题叠加导致:
- 你使用的
@discordjs/opus@0.6.0版本预编译二进制包下载链路失效,请求返回403错误,无法直接拉取可用的预编译文件 - 工具自动 fallback 到源码编译时,你的Windows系统缺少node-gyp要求的Visual Studio C++编译环境,导致源码编译失败
解决方案
优先选择不需要安装编译环境的方案,操作更简单:
- 方案1:升级
@discordjs/opus版本
旧版本的预编译包下载问题已经在后续版本修复,直接修改package.json中@discordjs/opus的版本号为最新稳定版,删除node_modules文件夹和package-lock.json文件后重新执行npm i即可 - 方案2:替换为纯JS实现的opus依赖
不需要编译的opusscript是@discordjs/opus的官方兼容替代包,普通音乐机器人场景下完全够用,直接执行npm install opusscript即可完成安装,discord.js会自动识别并调用该依赖
如果必须使用@discordjs/opus@0.6.0版本,可安装对应编译环境解决:
- 以管理员权限打开命令行,执行
npm install --global windows-build-tools,工具会自动安装node-gyp所需的Python和C++编译组件,安装完成后重新执行npm i即可安装成功
Heroku部署注意事项
部署到Heroku时不需要配置本地编译环境,选择上述方案1或方案2修改依赖后重新推送代码即可,Heroku容器环境会自动适配依赖安装逻辑。
内容的提问来源于stack exchange,提问作者Hein Min Htun
相关产品推荐
相关产品推荐

