【问题标题】:How to run Node controlled Phantomjs/Casperjs script in Heroku如何在 Heroku 中运行节点控制的 Phantomjs/Casperjs 脚本
【发布时间】:2017-09-29 01:45:57
【问题描述】:

我编写了一个 Casperjs 脚本来进行一些抓取,但是,在遇到 memory exhaustion issues 之后,我现在编写了一个节点脚本来通过 exec 关闭和打开 Phantom。我可以在本地毫无问题地运行它,但是当我部署到 heroku 时出现以下错误

Error: Command failed: casperjs turnitoffandon.js
ERROR: stderr was:/bin/sh 1: casperjs: not found

我使用了 nodejs buildpack 并在我的依赖项中定义了 Phantom 和 Casper。在 heroku bash 中,运行 phantomjs --version 返回 2.1.1,casperjs --version 返回 1.1.4。

我需要定义 Casper 在哪里吗?如果有怎么办?我已将我的 PATH 变量设置为 /usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin:/app/vendor/casperjs/bin:/node_module/casperjs/bin ,就像在这个 SO question

【问题讨论】:

    标签: node.js heroku phantomjs casperjs


    【解决方案1】:

    这个问题实际上与 Heroku 无关。如this SO answer 中所述,使用exec 并在选项参数中提供任何环境变量将替换整个环境变量集。这包括路径,有效地覆盖了 buildpack 和 npm 模块中已经为 Heroku 指定的任何路径。

    除了需要传递的其他环境参数之外,您还可以创建 process.env 的副本并将其传递到参数中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 2012-09-11
      • 2017-10-15
      • 2013-05-06
      • 1970-01-01
      • 2016-08-27
      相关资源
      最近更新 更多