You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js机器人播放MP3时@discordjs/opus模块安装报错问询

报错核心原因
  • 当前拉取的@discordjs/opus@0.5.0版本未提供Node.js v16.0.0对应的预编译二进制包,请求预编译资源时返回404错误,自动触发本地源码编译流程
  • 本地node-gyp缓存缺失Node.js v16.0.0对应的公共配置文件common.gypi,导致源码编译流程中断
  • 管理员权限启动命令行仅能解决权限类错误,无法覆盖版本不匹配、本地文件缺失类问题
可落地的修复步骤
  • 匹配对应版本的opus依赖
    针对Node.js 16.x环境,不要安装默认拉取的0.5.0旧版,直接安装适配Node16的稳定版本:
    npm i @discordjs/opus@0.9.0
  • 修复本地node-gyp编译环境
    如果安装时仍触发源码编译报错,先完成本地编译环境初始化:
    1. 全局升级node-gyp到兼容版本:npm i -g node-gyp@latest
    2. 为当前Node v16.0.0拉取编译所需的头文件资源到本地缓存:node-gyp install
    3. 重新执行上述opus依赖安装命令
  • 无编译需求的替代方案
    如果本地编译流程持续报错,可以使用纯JS实现的opus编码器替代,完全规避本地编译环节,discord.js会自动识别已安装的编码器,无需修改原有播放逻辑:
    安装opusscript:npm i opusscript
  • 修正原有播放代码的语法遗漏
    你提供的播放代码存在Promise链未闭合的语法问题,修正后的完整可运行代码为:
    channel.join().then((connection) => {
      connection.play('audio.mp3');
    });
    

内容的提问来源于stack exchange,提问作者Cahan uuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 14:06:00