如何在Heroku中运行节点控制的phantomjs/casperjs脚本



我已经写了一个casperjs脚本来进行一些刮擦,但是,在遇到内存耗尽问题之后,我现在写了一个节点脚本来打开幻影和通过exec。我可以在本地没有任何问题的情况下运行此问题,但是当我部署到Heroku时,我会收到以下错误

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

我使用了nodejs buildpack,并在依赖项中定义了幻影和卡斯珀。在Heroku Bash中,运行phantomjs --version返回2.1.1,casperjs --version返回1.1.4。

我需要定义卡斯珀在哪里吗?如果是这样?我将路径变量设置为/usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin:/app/vendor/casperjs/bin:/node_module/casperjs/bin,就像在此问题中一样

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

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

最新更新