如何使用两个不同版本的discord.js | Discord.js机器人

4

我想在我的Discord机器人中使用以下版本的discord.js:

discord.js v11.6.4 discord.js v12.4.1

我尝试依次安装它们,但都没有成功。

first
npm i discord.js@11.6.4
then
npm i discord.js@12.4.1

有没有一种方法可以在package.json中区分discordv11和v12,并在一个机器人中同时使用这两个模块?

4
这个问题是否解决了你的疑问?如何使用npm安装多个版本的软件包 - yi fan song
1
是的,但使用两个版本的好处必须充分考虑,如果v11中的某些内容在v12中已被删除,则可能有其他方法来实现相同的功能。 - yi fan song
6个回答

10

你需要使用npm的别名功能(注意,该功能仅适用于npm v6.9.0及以上版本)

npm install discord.js11@npm:discord.js@11.6.4
npm install discord.js12@npm:discord.js@12.4.1

那么你可以这样访问它:

const discord11 = require('discord.js11')
const discord12 = require('discord.js12')

我不知道为什么你正在使用 discord.js v11,v12 应该拥有更全面的覆盖率和更多功能,你最好只使用 djs v12。


1
请打开你的 package.json 文件并添加:
"dependencies": {
   "DiscordJS11": "npm:discord.js@11.6.4",
   "DiscordJS12": "npm:discord.js@12.4.1"
}

然后执行:
npm install

0

当您在NPM中安装模块时,您将无法在2个不同的版本中使用相同的模块。您可以做的是拥有2个具有相同功能但不同的模块。

您需要执行以下操作:

npm i discord.js@11

然后,您将重命名在node_modules中创建的文件夹。这个文件夹叫discord.js,您将把它重命名为discord.js_v11。
现在,您可以使用以下命令安装v12:
npm i discord.js@12

现在,你需要做同样的事情,但是不要使用 discord.js_v11,而是改为 discord.js_v12。

现在,在你的机器人的主文件中,你需要这样做:

const DiscordV11 = require("discord.js_v11")
const DiscordV12 = require("discord.js_v12")

Node会理解它们是两个不同的模块,然后为您接受它。

我希望能对您有所帮助。

0

嗯,你可以使用版本12,该版本具备版本11的所有功能。

npm install discord.js@v12

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
这并不是对问题的回答。一旦您有足够的声望,您将能够评论任何帖子;相反,提供不需要请求者澄清的答案。- 来自审核 - blurfus

0

这似乎是一种不好的做法。想象一下,如果 DiscordJs 11 到 12 与 DiscordAPI 有重大变化,我猜你想要使用 v12 的新功能,也许最好是妥协现有的东西或将 v11 代码重写为 v12。我希望在 v11 到 v12 中没有太多的重大变化,尽管 v13 有很多重大变化。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

您可以在npm中安装discord.js-v11discord.js-v12软件包。

在终端/cmd中:

npm install discord.js-v11

在代码中:
const { Client, Intents } = require('discord.js-v11');
// code...

这也适用于V12。

只需将v11替换为v12即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接