如何在Heroku

时间:2017-09-29 01:45:57

标签: node.js heroku phantomjs casperjs

我写了一个Casperjs脚本来做一些抓取,然而,在进入memory exhaustion issues之后,我现在编写了一个节点脚本来关闭Phantom并通过exec打开。我可以在本地运行它没有问题,但是当我部署到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

中一样

1 个答案:

答案 0 :(得分:0)

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

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