Discord.JS运行报Cannot find module错误如何排查解决
Discord.JS 「Cannot find module」报错排查方案
报错基础信息
运行Discord.JS项目时抛出错误:Discord.JS Error: Cannot find module at, Object.<anonymous>
报错截图:
项目目录结构参考:
报错本质
该错误为Node.js通用模块加载异常,核心原因是Node.js运行时无法匹配代码中声明要加载的第三方依赖或本地文件,不属于Discord.JS框架本身的bug。
按优先级排查解决
- 依赖未安装/安装损坏
- 进入存放
package.json的项目根目录,在该目录下打开终端 - 执行
npm ls查看依赖状态,若输出带missing标识的包,直接执行npm install补全依赖 - 若明确缺失discord.js包,单独执行
npm install discord.js安装 - 上述操作无效时,删除根目录下
node_modules文件夹与package-lock.json文件,重新执行npm install全量重装依赖
- 进入存放
- 本地文件引用路径错误
- 根据报错栈标注的出错行号,定位到写有
require()/import语法的代码行 - 检查自写文件的引用规则:
- 同级目录文件引用必须加
./前缀,例如同目录下的config.json需写为require('./config.json'),省略./时Node会默认去node_modules目录查找对应包,必然触发找不到模块的错误 - 上级目录文件引用必须加
../前缀,每向上一级目录多写一组../
- 同级目录文件引用必须加
- 检查引用文件名、后缀名的大小写是否完全匹配,Node.js加载文件时区分大小写,与Windows系统的文件名大小写不敏感规则存在差异
- 根据报错栈标注的出错行号,定位到写有
- 运行环境版本不兼容
- 终端执行
node -v查看本地Node.js版本,Discord.JS v14要求Node.js版本不低于16.9.0,推荐使用18.x长期支持版 - 版本不满足时,安装对应版本Node.js后重启终端再运行项目
- 终端执行
- 终端运行路径错误
- 执行启动命令时,必须确保终端当前工作目录为项目根目录,禁止在其他目录下通过绝对路径调用启动文件,否则会出现相对路径解析错乱
- 可在
package.json中配置启动脚本,后续直接执行npm start启动项目,规避路径问题,脚本配置示例:
"scripts": { "start": "node 你的项目启动文件名.js" }
内容的提问来源于stack exchange,提问作者Nullified
相关产品推荐
相关产品推荐

