如何修复npm ERR!对等dep缺失:discord.js@11.5.1是否需要node-opus@^0.2.7?

时间:2019-06-14 16:54:48

标签: node.js heroku discord.js opus

我在Heroku上部署了一个不和谐的音乐机器人,除了在语音通道中播放音乐外,其他所有功能都可以运行,尽管当我在PC上运行代码时-一切正常。键入npm列表,我已经看到错误消息“缺少npm ERR!对等dep:node-opus @ ^ 0.2.7,discord.js @ 11.5.1要求”。因此,node-opus和bot的问题无法播放音乐。当然,我已经使用npm init将这个库和其他库放入package.json中。我将下面的代码粘贴到package.json文件中。

我已经尝试将所有这些库与npm,yarn,npm和yarn与package.json一起安装。

{
  "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"
  }
}

2 个答案:

答案 0 :(得分:0)

我将删除node_modules文件夹,在安装discord.js之后运行npm i -g install-peerdeps,然后在项目文件夹中运行install-peerdeps discord.js@11.5.1(如果没有其他对等依赖项)。如果他们这样做,您可以随时npm rm <module>离开。

答案 1 :(得分:0)

引自Discord.js docs ...

  

忽略所有关于未满足对等项依赖关系的警告,因为它们都是可选的。

因此,除非您尝试使用node-opus时消息出现在控制台中,否则请不要担心警告。

由于您的语音支持问题,请采取以下步骤以寻求解决方案。

  • 确保在您的Heroku环境中已安装FFmpeg并使其正常工作:请参见this buildpack
  • 尽管已安装node-opus,但请尝试Discord.js所需的特定版本:npm i node-opus@^0.2.7
  • 如果node-opus根本不起作用,请尝试opusscript(尽管认为node-opus是可行的)。