我在將自己的 Discord 機器人部署到 heroku 時遇到了麻煩。當我部署它時,我的機器人仍然處于離線狀態。我剛剛回來關于編碼機器人和部署到 heroku 抱歉!
在我的 bot.js 這就是我所說的:
需要(“dotenv”)。配置();
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
我使用 git 遵循了 heroku 和 github 中的說明,但我真的不明白為什么它不起作用。如果我需要編輯我的帖子以發送圖片,請告訴我。謝謝!
更新:2021 年 12 月 22 日:我查看了 Heroku 應用程式日志,內容如下:
語法錯誤:意外的標記 '??='
也許這就是我的機器人仍然離線的原因?
uj5u.com熱心網友回復:
該錯誤SyntaxError: Unexpected token '??='與 heroku 的默認節點版本和 deiscord.js 運行的版本有關。
Heroku 使用節點 14,discord.js 使用節點 16,其中的語法??在節點 15 中引入。
然而,此解決方案有一個簡單的修復。
在您的package.json檔案中添加:
"engines": {
"node": "16.7"
},
Heroku 現在將知道使用節點 16.7,因此它將具有??可用的語法并為 discord.js 正常作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/393363.html
