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

Posted

技术标签:

【中文标题】如何修复 npm ERR! peer dep 缺失:discord.js@11.5.1 需要的 node-opus@^0.2.7?【英文标题】:How to fix npm ERR! peer dep missing: node-opus@^0.2.7, required by discord.js@11.5.1? 【发布时间】:2019-10-29 08:10:43 【问题描述】:

我已经为 heroku 部署了一个不和谐的音乐机器人,除了在语音频道中播放音乐外,一切正常,尽管当我在电脑上运行我的代码时 - 一切正常。键入 npm 列表,我看到错误消息“npm ERR!peer dep missing: node-opus@^0.2.7, required by discord.js@11.5.1”。 node-opus 的问题和显然 bot 因此无法播放音乐。当然,我已经使用 npm init 将这个库和其他库放入 package.json 中。我从 package.json 文件中粘贴了一段代码。

我尝试使用 npm、yarn、npm 和带有 package.json 的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"
  

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

引自Discord.js docs...

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

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

由于您的问题与语音支持有关,因此请采取这些步骤以寻求解决方案。

确保 FFmpeg 已安装并在您的 Heroku 环境中运行:请参阅 this buildpack。 虽然您已安装 node-opus,但请尝试使用 Discord.js 想要的特定版本:npm i node-opus@^0.2.7。 如果node-opus 根本不起作用,请尝试opusscript(尽管node-opus 是首选)。

【讨论】:

我已经尝试过这样做,但在将音乐播放到语音频道时仍然存在问题。我已经安装了opusscript,删除了node-opus,并通过您的链接安装了ffmpeg 库。看起来问题不在于opus。至少我在npm list 中不再有错误。任何想法如何解决这个问题?可能是我安装了 ffmpeg 不知何故不正确? 当流媒体不起作用时,您的控制台中是否有错误? 不,没有。但是当机器人在构建日志中部署到 heroku 时,我看到了NPM_CONFIG_LOGLEVEL=error。可能是这个问题?

以上是关于如何修复 npm ERR! peer dep 缺失:discord.js@11.5.1 需要的 node-opus@^0.2.7?的主要内容,如果未能解决你的问题,请参考以下文章

npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree

npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree

vue运行之神奇的npm install --legacy-peer-deps

vue运行之神奇的npm install --legacy-peer-deps

npm install xxxx --legacy-peer-deps命令是什么?

ERROR command failed npm install --loglevel error --legacy-peer-deps 解决办法