SyntaxError:在 Heroku 上托管 Discord 机器人时出现意外的令牌 '??='
Posted
技术标签:
【中文标题】SyntaxError:在 Heroku 上托管 Discord 机器人时出现意外的令牌 \'??=\'【英文标题】:SyntaxError: Unexpected token '??=' when hosting a Discord bot on herokuSyntaxError:在 Heroku 上托管 Discord 机器人时出现意外的令牌 '??=' 【发布时间】:2021-12-19 03:52:14 【问题描述】:我想托管一个我在 Heroku 上创建(使用 Node.js)的不和谐机器人,但抛出了那个错误:
2021-11-05T00:00:10.334347+00:00 app[web.1]: > node .
2021-11-05T00:00:10.334348+00:00 app[web.1]:
2021-11-05T00:00:10.393407+00:00 app[web.1]: /app/node_modules/discord.js/src/rest/APIRequest.js:33
2021-11-05T00:00:10.393408+00:00 app[web.1]: agent ??= new https.Agent( ...this.client.options.http.agent, keepAlive: true );
2021-11-05T00:00:10.393409+00:00 app[web.1]: ^^^
2021-11-05T00:00:10.393409+00:00 app[web.1]:
2021-11-05T00:00:10.393409+00:00 app[web.1]: SyntaxError: Unexpected token '??='
2021-11-05T00:00:10.393412+00:00 app[web.1]: at wrapSafe (internal/modules/cjs/loader.js:1001:16)
2021-11-05T00:00:10.393413+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1049:27)
2021-11-05T00:00:10.393413+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
2021-11-05T00:00:10.393413+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:950:32)
2021-11-05T00:00:10.393414+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:790:12)
2021-11-05T00:00:10.393414+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:974:19)
2021-11-05T00:00:10.393414+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:93:18)
2021-11-05T00:00:10.393415+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/discord.js/src/rest/RESTManager.js:4:20)
2021-11-05T00:00:10.393415+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1085:14)
2021-11-05T00:00:10.393415+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
2021-11-05T00:00:10.400407+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2021-11-05T00:00:10.400581+00:00 app[web.1]: npm ERR! errno 1
2021-11-05T00:00:10.403958+00:00 app[web.1]: npm ERR! discord-bot@1.0.0 start: `node .`
2021-11-05T00:00:10.403998+00:00 app[web.1]: npm ERR! Exit status 1
2021-11-05T00:00:10.404053+00:00 app[web.1]: npm ERR!
2021-11-05T00:00:10.404092+00:00 app[web.1]: npm ERR! Failed at the discord-bot@1.0.0 start script.
2021-11-05T00:00:10.404140+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2021-11-05T00:00:10.408367+00:00 app[web.1]:
2021-11-05T00:00:10.408447+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2021-11-05T00:00:10.408486+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2021-11-05T00_00_10_404Z-debug.log
2021-11-05T00:00:10.592782+00:00 heroku[web.1]: Process exited with status 1
2021-11-05T00:00:10.917668+00:00 heroku[web.1]: State changed from starting to crashed
这是我的 package.json:
"name": "discord-bot",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts":
"start": "node .",
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon src/index.js"
,
"keywords": [],
"author": "",
"license": "ISC",
"dependencies":
"cli": "^1.0.1",
"discord.js": "^13.3.1",
"discord.js-commando": "^0.12.3"
,
"devDependencies":
"nodemon": "^2.0.14"
我也添加了一个 procfile:worker: node src/index.js
我有 Node.js 最新版本 (16.0)
我应该怎么做才能修复这个错误?
【问题讨论】:
嗨,源代码中可能有一些杂散的 unicode 字符吗?也许这可能会引起人们的兴趣***.com/questions/46516153/… 而不是x ??= y
,尝试使用x ?? (x = y)
无效分配相对较新,但应该从Node 15.0 开始可用。 developer.mozilla.org/en-US/docs/Web/javascript/Reference/…
@jspcal 可能不是问题:/
【参考方案1】:
对我来说,您似乎没有传递令牌。
如果您从文件中获取令牌,请确保它被正确读取。
【讨论】:
错误与 Discord 令牌无关。 我通过了,阅读正确【参考方案2】:将节点更新到 >= v16.6.0。
https://github.com/discordjs/discord.js/issues/5119
【讨论】:
如果我改为更新到 17.0.1,这会起作用吗? 是的,17.0.1 > 16.6.0。 我这样做并更新了 discord.js,错误已修复,谢谢! @MatheusChiarelli 记得标记对您有帮助的答案,以便其他有类似问题的人可以更快地找到答案。【参考方案3】:我刚刚将 discord.js 更新到版本 12.5.3 并且工作正常!我感谢所有的答案
【讨论】:
感谢您跟进解决方案!以上是关于SyntaxError:在 Heroku 上托管 Discord 机器人时出现意外的令牌 '??='的主要内容,如果未能解决你的问题,请参考以下文章
在哪个 IP 上托管 http 服务器? (Heroku,没有框架)
在 Heroku 上托管时,Puppeteer discord bot 不断崩溃