Beh*_*oth 8 javascript node.js discord.js
今天(7.8.2021)Discord.js v13已经发布。所以我升级了我以前的Discord.js安装
npm i discord.js@latest
然后将我的基本index.js文件调整为这种状态(我遵循了Discord.js 指南):
const { Client, Intents } = require("discord.js");
const client = new Client({
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES],
});
client.once("ready", () => {
console.log("Ready!");
});
client.login("my-token");
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行我的代码时,我不断收到此错误:
$节点。
(node:11216) UnhandledPromiseRejectionWarning: ReferenceError: AbortController 未定义
在 RequestHandler.execute (C:\ pathTo \ node_modules \discord.js\src\rest\RequestHandler.js:172:15)
我已经使用Discord.js超过 2 年了,因此我很惊讶我在新版本中遇到了问题。这是Discord.js v13库的问题吗?如果不是,我该如何修复错误?
Nic*_*ons 10
使用 Discord.js v13的先决条件之一是您需要使用 NodeJS v16.6 或更高版本(重点是我的):
v13 需要使用 Node 16.6 或更高版本,因此请确保您是最新的。要检查您的节点版本,请使用 node -v
> npm install -g n
> n latest
Run Code Online (Sandbox Code Playgroud)
第一个命令安装命令行界面n,然后第二个命令n用于更新到最新的稳定版本的节点。
如果您不确定是否需要更新,您可以通过执行以下命令来检查您的节点版本:
> node -v
Run Code Online (Sandbox Code Playgroud)
在 discordjs 的几个版本之前,添加了一项功能,可以中止耗时过长(超过 15 秒)的请求。为了实现这个功能,他们之前使用了节点包abort-controller。然而,现在 nodejs 已经进化,它现在有了自己的AbortController全局,不需要外部包。Discord.js v13 现在依赖于这个全局变量,因为它们不再使用 abort 控制器包。为了使用AbortControllernodejs 提供的全局,您需要使用 node v15 或更高版本 - 但是,根据 discord.js 指南的建议,您应该使用 v16.6+ 以支持它可能使用的其他功能。
小智 6
如果您不想在所有系统中安装node.js v16,而只想将其添加到机器人的项目中,您可以执行以下操作:
npm install node@16.6.1 --save-exact
Run Code Online (Sandbox Code Playgroud)
它会运行。
| 归档时间: |
|
| 查看次数: |
8642 次 |
| 最近记录: |