Discord.js v14音乐机器人语音报错:已装依赖仍提示无有效加密包
问题排查与解决方法
报错原因
@discordjs/voice 依赖加密库处理音频传输的加密逻辑,你当前仅安装了音频编码、播放相关依赖,缺少它要求的加密包(sodium、libsodium-wrappers、tweetnacl 三者任选其一),因此触发该错误。
解决步骤
- 安装加密依赖:在项目根目录执行以下任意一条命令(根据你使用的包管理器选择):
- npm:
npm install libsodium-wrappers(推荐,兼容性更好) - npm:
npm install sodium或npm install tweetnacl - yarn:
yarn add libsodium-wrappers
- npm:
- 验证依赖状态(可选):在机器人代码中添加以下代码,运行后查看输出确认加密包已正确安装:
const { generateDependencyReport } = require('@discordjs/voice'); console.log(generateDependencyReport()); - 重启机器人:确保新安装的依赖加载生效,再启动机器人测试音频播放功能。
若安装后仍报错,可尝试删除 node_modules 文件夹和 package-lock.json(或 yarn.lock),重新执行包安装命令后再启动。
内容的提问来源于stack exchange,提问作者SadSenpai
相关产品推荐
相关产品推荐

