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 不适合使用大量适配器/依赖项(例如 ffmpegbetter-sqlite-3opus 等)的机器人。因此,如果您无法确定是什么中断了连接,请考虑切换主机。

【讨论】:

这是 Procfile 的问题,好吧,而不是没有,正如我在编辑中所写的那样,现在一切正常。是的,我知道 heroku 不是托管机器人的最佳选择,但我的机器人所做的只是从端点获取数据并显示它,我不需要太多。

以上是关于Heroku DIScord.js Typescript - 机器人工作但构建卡在待处理的主要内容,如果未能解决你的问题,请参考以下文章

我的 Heroku Discord 机器人离线 - discord.js

Heroku/Discord.js 错误“服务不可用”

discord.js 机器人在本地工作,但不在 Heroku 上

错误:在 Heroku 上找不到模块 Discord.js

discord.js 代码在 heroku 主机上不起作用

Discord.js 机器人 | Heroku 部署错误 | npm 错误!缺少脚本:开始