Heroku DIScord.js Typescript - 机器人工作但构建卡在待处理
Posted
技术标签:
【中文标题】Heroku DIScord.js Typescript - 机器人工作但构建卡在待处理【英文标题】:Heroku DIscord.js Typescript - bot works but build is stuck on pending 【发布时间】:2021-07-15 01:28:13 【问题描述】:所以我将我的 Discord.js(用 TypeScript 编写)机器人部署到 Heroku,该机器人可以工作,但构建被卡在待处理状态。以下是 Heroku 构建日志:
-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NODE_VERBOSE=false
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): unspecified
engines.npm (package.json): unspecified (use default)
Resolving node version 14.x...
Downloading and installing node 14.16.1...
Using default npm version: 6.14.12
-----> Installing dependencies
Installing node modules
> mybot@1.0.0 postinstall /tmp/build_525987f7
> tsc
added 20 packages in 6.722s
-----> Build
Running build
> mybot@1.0.0 build /tmp/build_525987f7
> node dist/main.js
Connected
“已连接”是我在机器人成功连接时发送的控制台日志消息。
这是我的 package.json 脚本
"scripts":
"dev": "tsc -w",
"postinstall": "tsc",
"start": "node dist/main.js",
"start-dev": "nodemon dist/main.js",
"build": "node dist/main.js"
,
那么这里发生了什么?该机器人功能齐全,但构建被卡在待处理状态
编辑:好的,大约 1 小时后构建超时。但我设法让这一切正常工作。 首先,我将 package.json 脚本更改为:
"scripts":
"start": "node dist/main.js",
"build": "tsc"
,
然后我在根目录中创建了一个 Procfile
worker: npm start
这解决了所有问题。
【问题讨论】:
【参考方案1】:我建议调试 websocket 连接并检查它在哪里超时。 为此,您可以使用以下内容:
<client>.on("debug", (debug) =>
console.log(debug)
);
此外,Heroku 不适合使用大量适配器/依赖项(例如 ffmpeg
、better-sqlite-3
、opus
等)的机器人。因此,如果您无法确定是什么中断了连接,请考虑切换主机。
【讨论】:
这是 Procfile 的问题,好吧,而不是没有,正如我在编辑中所写的那样,现在一切正常。是的,我知道 heroku 不是托管机器人的最佳选择,但我的机器人所做的只是从端点获取数据并显示它,我不需要太多。以上是关于Heroku DIScord.js Typescript - 机器人工作但构建卡在待处理的主要内容,如果未能解决你的问题,请参考以下文章
我的 Heroku Discord 机器人离线 - discord.js