【问题标题】:Can't find module inside of my folder (discord.js)在我的文件夹中找不到模块 (discord.js)
【发布时间】:2021-04-20 05:44:10
【问题描述】:

正如标题中所说,我使用的是 discord.js。 下面显示的是我尝试运行 npm run start 时从控制台收到的错误。

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

Error: Cannot find module './src/commands/clear.js'
Require stack:
- C:\Users\nicod\OneDrive\Desktop\CloudHostedBotCSCS\src\Bot.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:15)
    at Function.Module._load (node:internal/modules/cjs/loader:763:27)
    at Module.require (node:internal/modules/cjs/loader:991:19)
    at require (node:internal/modules/cjs/helpers:92:18)
    at Object.<anonymous> (C:\Users\nicod\OneDrive\Desktop\CloudHostedBotCSCS\src\Bot.js:7:15)
    at Module._compile (node:internal/modules/cjs/loader:1102:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)
    at Module.load (node:internal/modules/cjs/loader:967:32)
    at Function.Module._load (node:internal/modules/cjs/loader:807:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\nicod\\OneDrive\\Desktop\\CloudHostedBotCSCS\\src\\Bot.js'
  ]
}

控制台的屏幕截图如下所示: Screenshot of console error

这是有问题的代码块:

const clear = require("./src/commands/clear.js");

client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync("./src/commands/").filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
    const command = require(`./src/commands/${file}`);

    client.commands.set(command.name, command);
}

有问题的部分是const commandFiles = fs.readdirSync('./src/commands/').filter(file =&gt; file.endsWith('.js'));。一直提示找不到./src/commands/ 的模块。

这是我的文件截图:Screenshot of files + folders

无论我如何调整代码,我仍然会收到此错误,有什么想法吗?

【问题讨论】:

  • 您的Bot.js 文件似乎已经在src 文件夹中?你试过./commands/clear.js吗?
  • 会尝试的。谢谢
  • 你试过fs.readdirSync(__dirname+"/src/commands/")吗?
  • 马上试试
  • 这不起作用,但我对其进行了调整,fs.readdirSync(__dirname+"/commands/") 起作用了。感谢您的帮助

标签: javascript node.js discord.js npm-start


【解决方案1】:

您的错误在 Bot.js 文件中。即在src 目录中。

那么导入应该是require('./commands/clear.js') 而不是require('./src/commands/clear.js')

检查目录树。

【讨论】:

  • 我收到此错误Error: ENOENT: no such file or directory, scandir './commands/'
  • 您的文件树设置不正确,请尝试为您的机器人设置一个主文件夹。然后将 index.js 和您的 commands 文件夹放入该文件夹中。这样你就不会出错了。
【解决方案2】:

而不是使用fs.readdirSync('./src/commands/')

@Dario 建议使用fs.readdirSync(__dirname+"/src/commands/"),但这仍然不起作用。所以我调整了代码,fs.readdirSync(__dirname+"/commands/") 最终成为了解决方案。

【讨论】:

  • 这是答案,但我不能打勾
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2020-09-10
  • 2014-09-03
  • 1970-01-01
  • 2020-07-06
  • 2021-08-27
  • 2019-01-18
相关资源
最近更新 更多