node_modules/@discordjs/opus/prebuild/node-v83-napi-v3-win32-x64-unknown-unknown/opus.node: 无效的 ELF header

node_modules/@discordjs/opus/prebuild/node-v83-napi-v3-win32-x64-unknown-unknown/opus.node: invalid ELF header

所以我正在制作一个 Discord Bot,它可以将音频从一个语音通道中继到另一个语音通道,我 运行 遇到了一个错误。控制台说它找不到 opus.node 文件,因为我正在托管 GitHub 的机器人。所以我将 node_modules/@discordjs/opus/package.json 中的 module_path 值更改为准确的路径。然后它说我必须为 napi_build_version 添加一个替换字符串,所以我做到了。然后它给了我另一个错误,说有一个无效的 ELF header,它找不到 node-opusopusscript.

node_modules/@discordjs/opus/prebuild/node-v83-napi-v3-win32-x64-unknown-unknown/opus.node: invalid ELF header
(a few console.log lines not from errors)
Error: Cannot find module 'node-opus'
(some other error lines)
Error: Cannot find module 'opusscript'

下面是我认为错误的源代码。

function record(userid, connection){
    const audio = connection.receiver.createStream(userid, {end: 'manual', type: 'opus'})
    const playlist = connection.play(audio, { type: 'opus' })
}

我运行从以下位置获取函数:

voiceChannel.members.forEach((member) => {
        if (member.id !== client.user.id && !ignore.includes(member.id)){
             record(member.id, connection);
        }
    })

以及变量的值是什么:

const voiceChannel = message.member.voice.channel;
const connection = await voiceChannel.join();

注意:我无法在 GitHub 控制台中 运行 代码(控制台只是一个日志) 如果您有任何问题,请提问。

我通过添加

解决了我的问题
- run: npm install @discordjs/opus

上方的.yml文件
- run: node index.js

这样它会为它使用的系统安装模块。