使用 REPLIT 创建我的第一个机器人但总是错误 Discord.JS [重复]

Posted

技术标签:

【中文标题】使用 REPLIT 创建我的第一个机器人但总是错误 Discord.JS [重复]【英文标题】:Creating my first bot using REPLIT but always error Discord.JS [duplicate] 【发布时间】:2021-11-26 06:03:39 【问题描述】:

我刚刚在 Replit 上启动了 Discord.JS。 它遵循 FreeCodeCamp 在https://www.freecodecamp.org/news/create-a-discord-bot-with-javascript-nodejs/ 上的教程

但是当我运行代码时它告诉我运行:

const Discord = require("discord.js")
const client = new Discord.Client()

client.on("ready", () => 
  console.log(`Logged in as $client.user.tag!`)
)

client.on("message", msg => 
  if (msg.content === "ping") 
    msg.reply("pong");
  
)

client.login(process.env.TOKEN)

它告诉这个错误:

Error: Cannot find module 'node:events'
Require stack:
- /home/runner/Omega-Flowey-JS-Test/node_modules/discord.js/src/client/BaseClient.js
- /home/runner/Omega-Flowey-JS-Test/node_modules/discor
Error: Cannot find module 'node:events'
Require stack:
- /home/runner/Omega-Flowey-JS-Test/node_modules/discord.js/src/client/BaseClient.js
- /home/runner/Omega-Flowey-JS-Test/node_modules/discord.js/src/index.js
- /home/runner/Omega-Flowey-JS-Test/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
    at Function.Module._load (internal/modules/cjs/loader.js:667:27)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/home/runner/Omega-Flowey-JS-Test/node_modules/discord.js/src/client/BaseClient.js:3:22)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19

谁能告诉我什么错误?我是 Discord.JS 的新手,所以我不知道有什么错误。

【问题讨论】:

您在运行npm install时是否遇到错误? 我不知道,当我启动它时,它只是立即给出了那个错误。就像程序只是不想尝试运行并且只是给出错误一样 【参考方案1】:

Discord.js v13 需要 Node.js v16.6。 Replit 仅直接支持 Node.js v12.16.1(在撰写本文时)。

使用旧版本的 Node.js 时,您可能会看到诸如

之类的错误 Error: Cannot find module 'node:events' ReferenceError: AbortController is not defined SyntaxError: Unexpected token '?'

但是,您可以使用 node npm 包安装更新的 Node.js 二进制文件。

这是一个最小设置:

package.json


  "name": "node.js-v16-on-replit-demo",
  "version": "0.0.1",
  "dependencies": 
    "discord.js": "^13.2.0",
    "node": "^16.10.0"
  

.replit

run = "npx node ."

index.js

const Discord = require("discord.js")

// your code...

你可以试试这个demo repl。

如果你愿意,你可以定义一个start npm 脚本:

package.json


  // ...
  "scripts": 
    "start": "node ."
  

.replit

run = 'npm start'

Replit 上还有 plenty of resources online 关于 Node.js v16。

【讨论】:

它可以工作,但是当我尝试输入任何类型的代码时,它只会出错 你需要比“犯错误”更具体。请编辑您的问题以包含错误的完整详细信息, 我只是想补充一点,即使使用v12也会发生这种情况,所以无论如何你都必须升级 链接到“找不到模块 'node:events' 问题”:***.com/q/69489101/15781079

以上是关于使用 REPLIT 创建我的第一个机器人但总是错误 Discord.JS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 replit 中使用 PIL.ImageFont.truetype 加载字体文件

如何阻止我的 Discord 机器人调用错误的命令?

voice_client 和 url 突然在 discord.py 机器人中不起作用

我需要帮助在 Replit(Pygame) 上播放声音

“Replit 威胁我,要求我关闭我的开源项目!”

使用serv-u创建ftp服务器是为啥总是提示脚本错误(又追加的)