尝试部署 Puppeteer 应用 Heroku 后,错误代码=H14 desc="No web processes running"

时间:2020-12-30 13:52:18

标签: node.js heroku web-scraping puppeteer yarnpkg

我正在尝试将一个简单的应用程序部署到 Heroku,该应用程序使用 Puppeteer 执行 Web Scraping。 由于在 Heroku 中使用 Puppeteer 存在问题,因此我需要定义一个 buildpack 来支持 Puppeteer,参考以下文章:

  1. Puppeteer unable to run on heroku
  2. https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-heroku
  3. https://github.com/jontewks/puppeteer-heroku-buildpack

按照这些步骤给了我以下错误:

code=H14 desc="No web processes running"

在网上搜索了一下,我找到了以下文章:

  1. H14 error in heroku - "no web processes running"

说我没有运行 web dynos,我尝试使用建议的命令设置一些: heroku ps:scale web=1 但这只是给了我这个错误: Scaling dynos... ! ▸ Couldn't find that process type (web).

我正在运行一个 Node.js 应用程序,使用 Yarn 作为包管理器。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我将描述我解决这个问题所经历的过程,这需要大量时间。

首先,我确定问题不是由使用 Yarn 而不是 npm 引起的,根据 Heroku 文档,如果您的应用程序的根文件夹包含 yarn.lock 文件,那么它应该自动使用 Yarn 来构建应用程序。但是他们也说你需要在你的 package.json 文件中添加你使用的 Yarn 版本的描述,所以我做了:

"engines": {
    "yarn": "1.x"
  },

那是为了确保问题不是纱线。事实并非如此。 接下来,我试图确切地了解网络测功机的问题所在,经过大量搜索后,我发现了这一点:

<块引用>

删除现有的 Buildpacks...并重新添加它们以正确的顺序

什么顺序?好吧...显然,当我关注上一个 StackOverflow 问题时,我已经删除了 Heroku 设置附带的所有 Buildpack,包括一个非常重要的 heroku/nodejs 构建包。 所以我想我必须将它重新添加到我的 Buildpack 列表中。我还认为,如果这是默认的 Buildpack 应该是列表中的第一名,那么 puppeteer 的 Buildpack 应该在其后(可以通过使用 --index 标志来完成)。

最后,我通过运行以下命令解决了问题:

$ heroku buildpacks:clear
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add --index=2 jontewks/puppeteer
$ git commit --allow-empty -m "Adjust buildpacks on Heroku"
$ git push heroku master

运行 $ heroku buildpacks 进行确认,返回以下内容:

=== workday-jobs Buildpack URLs
1. heroku/nodejs
2. jontewks/puppeteer

现在我知道我有必要的 Buildpacks,而且顺序正确,而且效果很好!

相关问题