如何在 Heroku 中 运行 节点控制 Phantomjs/Casperjs 脚本
How to run Node controlled Phantomjs/Casperjs script in Heroku
我已经编写了一个 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、运行ning phantomjs --version
returns 2.1.1 和 casperjs --version
returns 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
这个问题实际上与Heroku无关。如 this SO answer, using exec 中所述,在选项参数中提供任何环境变量将替换整个环境变量集。这包括路径,有效地覆盖已经在 buildpack 和 npm 模块中指定给 Heroku 的任何路径。
您可以创建一个 process.env 的副本,并将其作为参数传递给其他需要传递的环境参数。
我已经编写了一个 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、运行ning phantomjs --version
returns 2.1.1 和 casperjs --version
returns 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
这个问题实际上与Heroku无关。如 this SO answer, using exec 中所述,在选项参数中提供任何环境变量将替换整个环境变量集。这包括路径,有效地覆盖已经在 buildpack 和 npm 模块中指定给 Heroku 的任何路径。
您可以创建一个 process.env 的副本,并将其作为参数传递给其他需要传递的环境参数。