如何使用分片管理器从 ShardClientUtil 访问 shardArgs?

How can I access the shardArgs from the ShardClientUtil, using the sharding manager?

我正在使用 Discord.JS 设置一个机器人,并希望将 shardArgs 选项从 ShardingManager 传递到 ShardClient。如何从 ShardClientUtil?

访问选项 (shardArgs)
// ShardManager.js
const Discord = require('discord.js');

const Manager = new Discord.ShardingManager('./Main.js', {
     shardArgs: ["shard args to be passed through"]
});

Manager.spawn(1);

我试过使用 .fetchClientValues():

// Main.js
const Discord = require('discord.js');
const client = new Discord.Client();

client.shard.fetchClientValues('manager.shardArgs') 
   .then(results => {
    console.log(results);
   })
   .catch(console.error);

client.login("token");

我尝试了很多不同的东西,我什至在调试器中检查了对象,但我找不到 shardArgs 所以我不确定我应该从哪里访问它。

我预计 shardArgs"shard args to be passed through",而目前我得到 null

shardArgs实际上传递了一点:


您可以通过 process.argv 访问分片中的数组。 (不需要IPC)

请注意,第一个条目是可执行文件(节点),第二个是正在执行的文件 (Main.js),第三个及以上条目是您的数组。

例如,在您的 Main.js 文件中记录 process.argv 可能会记录:
['usr/bin/node', '/home/bot/Main.js', 'shard args to be passed through']