无法安装 discord.js / 找不到模块 discord.js

Posted

技术标签:

【中文标题】无法安装 discord.js / 找不到模块 discord.js【英文标题】:Can't install discord.js / can't find module discord.js 【发布时间】:2020-07-06 16:25:23 【问题描述】:

我尝试通过运行npm install discord.js 来安装 Discord.JS,它看起来可以正常工作,但实际上并没有。

我在运行index.js 文件时收到此错误,但它给出了一个错误,指出找不到discord.js。所以,我尝试再次安装它:

PS G:\My Drive\coding\node.js\bot> npm install https://github.com/discordjs/discord.js.git
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN bot@0.0.1 No repository field.

+ discord.js@12.0.2
added 15 packages from 17 contributors and audited 15 packages in 97.377s
found 0 vulnerabilities

然后我运行index.js 文件:

const Discord = require('discord.js');
const bot = new Discord.Client();
const botCommands = require('./commands');
const  prefix, token  = require('./cfg.json');

bot.login(TOKEN);

bot.on('ready', () => 
    console.info(`Logged in as $bot.user.tag!`);
);

这是控制台中显示的结果:

PS G:\My Drive\coding\node.js\bot> node .
internal/modules/cjs/loader.js:796
    throw err;
    ^

Error: Cannot find module './commands'
Require stack:
- G:\My Drive\coding\node.js\bot\index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:793:17)
    at Function.Module._load (internal/modules/cjs/loader.js:686:27)
    at Module.require (internal/modules/cjs/loader.js:848:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (G:\My Drive\coding\node.js\bot\index.js:3:21)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) 
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'G:\\My Drive\\coding\\node.js\\bot\\index.js' ]

旁注:在我运行index.js 之前,我运行npm init -y 来创建一个包。

P.S: 英语不是我的母语

【问题讨论】:

Error: Cannot find module './commands' 是的,我的错。真的很抱歉。 我认为第一次 discord.js 安装失败,我多次运行该文件,结果不同,我没有注意到。结案。谢谢。 【参考方案1】:

如果您找不到 /commands 文件夹 - 您确定它在那里吗? - 确保它在文件夹'G:\My Drive\coding\node.js\bot\'中。

【讨论】:

这不是它要搜索的命令文件夹。当需要一个没有扩展名的文件时,节点会自动将.js附加到它,所以它实际上是在搜索commands.js 代码不是我写的。我只是说明他写的代码是做什么的。 其实哈哈,首先,谢谢。但是这个问题很久以前就解决了。实际上问题是我认为访问 discord.js 有问题。现在已经结案了。下一个问题我也解决了。只是fs.readdirSync('./commands').filter(file =&gt; file.endsWith('.js')); 而且,它运行良好。整个问题已结案。问这个问题只是我很愚蠢。【参考方案2】:

好的。首先,它说没有找到模块“./commands”,discord.js确实存在。

原因是,您正在尝试导入文件夹。 Node.js 不能那样工作。

您必须删除带有 require("./commands") 的行并将其替换为以下内容:

var botCommands = fs.readdirSync('./commands/');

这将返回该目录中的文件名数组。

然后,继续你正在做的事情。

【讨论】:

【参考方案3】:

我认为你想要的是类似的东西

bot.on('message', message => 

  if(message.content.startsWith(prefix)) 
     let rawA = message.content.slice(prefix.length).split(' ');
     let cmd = rawA[0];
     let rawB = rawA.join(' ');
     let args = rawB.slice(cmd.length).split(' ');
  
     let cmdFile = require(`./commands/$cmd.js`);
     cmdFile.run(bot, message, args);
  

但是如果你使用这个,你需要在你的命令文件中使用这个:

exports.run = async (bot, message, args) => 
   //code

【讨论】:

【参考方案4】:

错误出现在您需要命令的第 3 行

如果您有命令文件夹,请执行此操作

fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

【讨论】:

以上是关于无法安装 discord.js / 找不到模块 discord.js的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 错误 - 找不到模块

错误:在 Heroku 上找不到模块 Discord.js

Discord.js:错误:更新到 v13 后“找不到模块 'node:events'”

故障上托管的不和谐机器人错误:找不到模块'discord.js'

错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”

找不到节点:discord.js 的事件