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

kpbpu008  于 2022-11-14  发布在  其他
关注(0)|答案(6)|浏览(128)

我尝试通过运行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来创建一个包。
英语不是我的第一语言

wljmcqd8

wljmcqd81#

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

thigvfpy

thigvfpy2#

好的。首先,它说模块“./commands”没有找到,discord.js确实存在。
原因是,您正在尝试导入一个文件夹。Node.js不能以这种方式工作。
您必须删除带有require(“./commands”)的行,并将其替换为如下内容:

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

将返回该目录中的文件名数组。
那就继续做你的事吧

wlzqhblo

wlzqhblo3#

请确保您使用的是正确的文件夹,并且G:\My Drive\coding\node.js\bot中有commands文件夹

cidc1ykv

cidc1ykv4#

错误在第3行,您需要以下命令
如果您有命令文件夹,请执行以下操作

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

ecr0jaav5#

我觉得你想要的是

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
}
gmxoilav

gmxoilav6#

好吧,你看,如果它说“命令是找不到”,那么它可能是你的文件夹可能是错误的,仔细检查大写和小写。如果仍然显示错误。
确保您的命令文件夹确实在此目录中。

G:\\My Drive\\coding\\node.js\\bot\\index.js

希望这对你有帮助!

相关问题