You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用@discordjs/voice创建播放器时遇模块缺失及函数错误求助

解决@discordjs/voice模块缺失及createAudioPlayer调用错误问题

问题现象

  • 安装@discordjs/voice后启动项目,提示找不到E:\Bots\DgF Bot\node_modules\@discordjs\voice\dist\index.js文件
  • 手动创建dist文件夹并添加index.js后,出现TypeError: createAudioPlayer is not a function错误
  • 已尝试卸载重装discord.js和@discordjs/voice,问题未解决

初始报错日志

$ nodemon
[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index.js`
node:internal/modules/cjs/loader:571
      throw e;
      ^

Error: Cannot find module 'E:\Bots\DgF Bot\node_modules\@discordjs\voice\dist\index.js'
     at createEsmNotFoundErr (node:internal/modules/cjs/loader:1096:15)
     at finalizeEsmResolution (node:internal/modules/cjs/loader:1089:15)
     at resolveExports (node:internal/modules/cjs/loader:565:14)
     at Module._findPath (node:internal/modules/cjs/loader:634:31)
     at Module._resolveFilename (node:internal/modules/cjs/loader:1061:27)
     at Module._load (node:internal/modules/cjs/loader:920:27)
     at Module.require (node:internal/modules/cjs/loader:1141:19)
     at require (node:internal/modules/cjs/helpers:110:18)
     at Object.<anonymous> (E:\Bots\DgF Bot\index.js:25:64)
     at Module._compile (node:internal/modules/cjs/loader:1254:14) {
  code: 'MODULE_NOT_FOUND',
  path: 'E:\\Bots\\DgF Bot\\node_modules\\@discordjs\\voice\\package.json'
    }

手动创建dist后的报错日志

$ nodemon
[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index.js`
E:\Bots\DgF Bot\index.js:26
const player = createAudioPlayer();
               ^

TypeError: createAudioPlayer is not a function
     at Object.<anonymous> (E:\Bots\DgF Bot\index.js:26:16)
     at Module._compile (node:internal/modules/cjs/loader:1254:14)
     at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
     at Module.load (node:internal/modules/cjs/loader:1117:32)
     at Module._load (node:internal/modules/cjs/loader:958:12)
     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
     at node:internal/main/run_main_module:23:47

用到的代码片段

const ytdl = require('ytdl-core-discord');
const { createAudioPlayer, createAudioResource, StreamType } = require('@discordjs/voice');
const player = createAudioPlayer();

解决方案

1. 彻底清理依赖并重新安装

  • 删除项目根目录下的node_modules文件夹
  • 删除package-lock.json或yarn.lock文件(根据使用的包管理器选择)
  • 执行命令重新安装所有依赖:
    npm install
    # 若使用yarn则执行:
    yarn install
    
    这一步可解决多数依赖安装不完整问题,缺失dist文件夹大概率是安装过程中断或缓存异常导致。

2. 检查Node.js版本兼容性

@discordjs/voice要求Node.js版本16.9.0及以上(推荐使用18.x或20.x LTS版本)。查看当前版本:

node -v

若版本过低,升级后重新安装依赖。

3. 确认导入方式正确性

@discordjs/voice支持CommonJS和ES模块两种导入方式,若重新安装后问题仍存在,可尝试切换导入方式:

  • 将脚本文件扩展名改为.mjs,并使用ES模块导入:
    import ytdl from 'ytdl-core-discord';
    import { createAudioPlayer, createAudioResource, StreamType } from '@discordjs/voice';
    const player = createAudioPlayer();
    
  • 或在package.json中添加"type": "module"配置,使.js文件默认以ES模块方式加载。

4. 排除第三方工具干扰

若使用nodemon等工具启动项目,可尝试直接用node index.js启动,排除工具配置对模块加载的影响。

内容的提问来源于stack exchange,提问作者DgFLocke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:17:15