新Ac*_*yyy 5 javascript heroku node.js discord.js
这与我的第一个问题有关。我更新了所有代码。在我的bot.js是:
require('dotenv').config();
let ver = process.env.DISCORD_BOT;
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);
});
Run Code Online (Sandbox Code Playgroud)
Procfile:
worker: node bot.js
Run Code Online (Sandbox Code Playgroud)
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"
}
Run Code Online (Sandbox Code Playgroud)
.env:
DISCORD_BOT= TOKEN
Run Code Online (Sandbox Code Playgroud)
当我检查 Heroku 应用程序日志时,抛出了以下错误:
2021-12-22T03:13:05.436081 + 00:00应用程序[worker.1]:代理?? =新的https.Agent({...this.client.options.http.agent,keepAlive:true});
2021-12-22T03:13:05.436082+00:00 应用程序[worker.1]: ^^^
2021-12-22T03:13:05.436082+00:00 应用程序[worker.1]:
2021-12-22T03:13:05.436082+00:00 app[worker.1]: SyntaxError: 意外的标记 '??='
我尝试搜索“SyntaxError: Unexpected token '??='”,每个结果都建议将 node.js 更新到 v16-17,但我已经在使用 Discord.js 和 Node 的最新版本.js。
该错误来自discord.js,这是因为您使用的是旧版本的 Node.js。逻辑空赋值运算符 (??= )仅在节点 v15+ 中可用。
您可能认为您正在使用最新版本的 Node.js,但 Heroku 表示“如果引擎中未指定 Node 版本,则将使用 14.x 版本”。您可以engines向文件添加一个 proppackage.json来指定您需要的版本。由于discord.js v13需要node.js v16.6+,您可以添加以下内容:
"engines": {
"node": "16.6"
}
Run Code Online (Sandbox Code Playgroud)
或者要请求最新的 v16,请添加以下内容:
"engines": {
"node": "16.x"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |