将 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
我在将自己的 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