我写了一个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
答案 0 :(得分:0)
这个问题实际上与Heroku无关。如this SO answer中所述,使用exec并在options参数中提供任何环境变量会替换整个环境变量集。这包括路径,有效地覆盖buildpack和npm模块中已经指定给Heroku的任何路径。
除了需要传递的其他环境参数外,您还可以创建process.env的副本并将其传递给参数。