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

安装开源Discord.js机器人后出现模块找不到错误,多种尝试无效

Discord.js机器人启动报错:Cannot find module '@helpers/extenders/Message'

问题详情

安装开源Node.js Discord机器人并完成配置后,启动时出现如下错误:

"C:\Program Files\nodejs\npm.cmd" run start

> discord-js-bot@5.2.0 start
> node .

node:internal/modules/cjs/loader:1024
  throw err;
  ^

Error: Cannot find module '@helpers/extenders/Message'
Require stack:
- D:\Programming\discord-js-bot\discord-js-bot\bot.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1021:15)
    at Function.Module._resolveFilename (D:\Programming\discord-js-bot\discord-js-bot\node_modules\module-alias\index.js:49:29)
    at Function.Module._load (node:internal/modules/cjs/loader:866:27)
    at Module.require (node:internal/modules/cjs/loader:1093:19)
    at require (node:internal/modules/cjs/helpers:108:18)
    at Object.<anonymous> (D:\Programming\discord-js-bot\discord-js-bot\bot.js:5:1)
    at Module._compile (node:internal/modules/cjs/loader:1191:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1245:10)
    at Module.load (node:internal/modules/cjs/loader:1069:32)
    at Function.Module._load (node:internal/modules/cjs/loader:904:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'D:\\Programming\\discord-js-bot\\discord-js-bot\\bot.js' ]
}

Process finished with exit code 1

项目jsconfig.json配置:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "baseUrl": "./",
    "paths": {
      "@root/*": ["./*"],
      "@handlers/*": ["./src/handlers/*"],
      "@helpers/*": ["./src/helpers/*"],
      "@schemas/*": ["./src/database/schemas/*"],
      "@src/*": ["./src/*"],
      "@structures/*": ["./src/structures/*"]
    }
  },
  "exclude": ["node_modules", "**/node_modules/*"]
}

已确认@helpers/extenders/Message文件存在,尝试过以下操作但无效:

  • npm cache clean --force
  • 删除package-lock.json和node_modules后执行npm i --save --legacy-peer-deps
  • npm link package_name
  • 完全重新安装项目

解决方案

1. 配置module-alias让Node.js识别路径别名

jsconfig.json的路径别名仅对编辑器生效,Node.js本身无法识别。需通过module-alias包映射别名:

  • 方法一:在项目入口文件(如bot.js)顶部添加代码:
const moduleAlias = require('module-alias');
moduleAlias.addAliases({
  '@root': __dirname,
  '@handlers': `${__dirname}/src/handlers`,
  '@helpers': `${__dirname}/src/helpers`,
  '@schemas': `${__dirname}/src/database/schemas`,
  '@src': `${__dirname}/src`,
  '@structures': `${__dirname}/src/structures`
});
  • 方法二:在package.json中添加别名配置:
{
  "_moduleAliases": {
    "@root": ".",
    "@handlers": "./src/handlers",
    "@helpers": "./src/helpers",
    "@schemas": "./src/database/schemas",
    "@src": "./src",
    "@structures": "./src/structures"
  }
}

然后在入口文件顶部引入注册:

require('module-alias/register');

2. 校验文件路径大小写

Windows系统默认不区分大小写,但Node.js会严格校验路径大小写。确认bot.js中引入的@helpers/extenders/Message和实际文件的大小写完全一致(比如是否是message.js而非Message.js)。

3. 确认module-alias依赖安装完整

执行命令确保依赖正确安装:

npm install module-alias --save

4. 检查baseUrl路径正确性

确认jsconfig.json中的baseUrl: "./"是相对于项目根目录的正确路径,若src目录与bot.js层级不符,需调整baseUrl和paths映射关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:12:53