问题描述
2021-12-02T02:42:45.888858+00:00 app[worker.1]: /app/node_modules/discord.js/src/rest/APIRequest.js:33
2021-12-02T02:42:45.888875+00:00 app[worker.1]: agent ??= new https.Agent({ ...this.client.options.http.agent, keepAlive: true });
2021-12-02T02:42:45.888876+00:00 app[worker.1]: ^^^
2021-12-02T02:42:45.888876+00:00 app[worker.1]:
2021-12-02T02:42:45.888877+00:00 app[worker.1]: SyntaxError: Unexpected token '??='
我在尝试启动新的 Discord.JS v13 heroku 机器人时收到此错误.
I am receiving this error while trying to start a fresh Discord.JS v13 heroku bot.
我的 Procfile 状态:worker: node src/index.js
My Procfile states:
worker: node src/index.js
我添加了我的 .env 并配置了机器人的启动方式,而不是使用 npm start.正如您可能推断的那样,我的代码中的任何地方都没有 ??=
.我该如何解决这个问题?
I have added my .env and configured how the bot starts, instead of using npm start. As you can probably deduce, I do not have a ??=
anywhere in my code. How can I fix this issue?
推荐答案
错误来自discord.js,这是因为您使用的是旧版本的node.js.逻辑空赋值运算符 (??=
) 仅 在节点 v15+ 中可用.
The error is coming from discord.js and it's because you're using an older version of node.js. The logical nullish assignment operator (??=
) is only available in node v15+.
Heroku 表示 如果引擎中未指定 Node 版本,将使用 14.x 版本".您可以在 package.json
文件中添加 engines
属性来指定 node.js 的版本.由于 discord.js v13 需要 node.js v16.6+,您可以添加以下内容:
Heroku says that "if a Node version isn’t specified in the engine, the 14.x release will be used". You can add an engines
prop to your package.json
file to specify the version of node.js. As discord.js v13 requires node.js v16.6+, you can add the following:
"engines": {
"node": "16.6"
}
或者请求最新的 v16,添加这个:
Or to request the latest v16, add this:
"engines": {
"node": "16.x"
}
这篇关于Heroku 意外令牌 ??=的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!