将 Discord Bot 部署到 Heroku 和 Github

Deploying Discord Bot to Heroku and Github

我在将自己的 Discord 机器人部署到 heroku 时遇到了问题。当我部署它时,我的机器人仍然离线。我刚刚回来讨论编码机器人和部署到 heroku 抱歉!

在我的 bot.js 中,这是我输入的内容:

require("dotenv").config();

let ver = process.env.NODE_ENV;

client.once("ready", async () => {
  if (ver === "production") {
    client.user.setActivity(`in code land`, { type: "PLAYING" });
  } else {
    client.user.setActivity(`over ${client.guilds.cache.size} server(s)`, {
      type: "WATCHING",
      status: "IDLE",
    });
  }
  console.log(`Logged in as ${client.user.tag}!`);
  console.log(`the prefix is ` + prefix);
});

bot.js 的底部是:

client.login(process.env.NODE_ENV);

在 .env 中这是我的代码:

NODE_ENV = TOKEN

在 package.json 这是我在脚本中输入的内容:

"scripts": {
    "start": "node .",
    "test": "echo \"Error: no test specified\" && exit 1",
    "production": "NODE_ENV=production&&npm start",
    "development": "set NODE_ENV=development&&npm start"
}

我创建了名为 Procfile 的文件,然后输入以下代码: 注意:我将 Procfile npm start 中的代码更改为 node bot.js,bot 仍然离线

workers: node bot.js

我按照 heroku 和 github 中的说明使用 git,但我真的不明白为什么它不起作用。如果我需要编辑我的 post 以发送图片,请告诉我。谢谢!

更新:2021 年 12 月 22 日: 我查看了 Heroku 应用程序日志,内容如下:

SyntaxError: Unexpected token '??='

也许这就是为什么我的机器人仍然离线的原因?

错误 SyntaxError: Unexpected token '??=' 与 heroku 的默认节点版本有关,而版本 deiscord.js 运行。

Heroku 使用节点 14,discord.js 使用节点 16,其中 ?? 的语法是在节点 15 中引入的。
然而,这个解决方案有一个简单的修复。

在您的 package.json 文件中添加:

"engines": {
   "node": "16.7"
},

Heroku 现在知道使用节点 16.7,因此它将具有 ?? 的语法,并且可以正确地工作 discord.js