我已经将一个不和谐的音乐机器人部署到 heroku,除了在语音频道中播放音乐外,一切都可以正常工作,尽管当我在 PC 上运行我的代码时 - 一切都有效。键入 npm 列表时,我看到了错误消息"npm ERR!缺少对等 dep:node-opus@^0.2.7,由 Discord.js@11.5.1" 要求。节点作品的问题,显然机器人因此无法播放音乐。当然,我已经使用 npm init 将这个和其他库放入 package.json 中。我从package.json文件中粘贴了一段代码。
我尝试使用 package.json 使用 npm、yarn、npm 和 yarn 安装所有这些库。
{
"dependencies": {
"discord.js": "^11.5.1",
"ffmpeg-binaries": "^4.0.0",
"google-tts-api": "0.0.4",
"heroku": "^7.25.0",
"node-gyp": "^5.0.0",
"node-opus": "^0.3.2",
"simple-youtube-api": "^5.2.0",
"sqlite3": "^4.0.9",
"uws": "^10.148.1",
"ytdl-core": "^0.29.2"
},
"scripts": {
"start": "node bot",
"test": "echo "Error: no test specified" && exit 1"
}
}
我会删除node_modules
文件夹,在安装 discord 后运行npm i -g install-peerdeps
.js然后在您的项目文件夹中运行 install-peerdeps discord.js@11.5.1
如果没有其他对等依赖项搞砸它。如果他们这样做,您可以随时npm rm <module>
离开。
引自 Discord.js docs...
忽略有关未满足的对等依赖项的任何警告,因为它们都是可选的。
因此,除非您尝试使用node-opus
时控制台中出现该消息,否则不必担心警告。
由于您的问题与语音支持有关,请按照以下步骤尝试达成解决方案。
- 确保 FFmpeg 已安装并在您的 Heroku 环境中工作:请参阅此构建包。
- 尽管已安装
node-opus
,但请尝试 Discord.js 想要的特定版本:npm i node-opus@^0.2.7
. - 如果
node-opus
根本不起作用,请尝试opusscript
(尽管node-opus
是推定的(。