問題描述
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 意外令牌 ??=的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!