我使用this buildpack在heroku上使用casperjs。
创建我的应用后,我会检查PATH
$ heroku config:get PATH
/usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin:/app/vendor/casperjs/bin
好的,casperjs在这里!
-
Procfile
scraper: node scraper.js
scraper.js
var exec = require('child_process').exec;
exec('casperjs casper-script.js');
-
但是当我启动刮刀进程时,它会崩溃并显示以下日志:
2012-10-09T02:23:38+00:00 heroku[scraper.1]: Starting process with command `node scraper.js`
2012-10-09T02:23:39+00:00 app[scraper.1]: bash: node: command not found
为什么exec
找不到casperjs
中的PATH
?
PS:我试过spawn
,但没有更多运气......
[编辑]:这里有一个可测试的要点https://gist.github.com/3856317
答案 0 :(得分:2)
知道了!
@vinayr:you were right,此问题不涉及exec
或casperjs
命令,node
是command not found
!
我认为使用phantomjs
和casperjs
安装一个buildpack(例如:heroku-buildpack-casperjs)会为我的应用保留节点功能,但似乎不是这样。
为了使它工作(node + phantomjs + casperjs),我宁愿分叉heroku-buildpack-nodejs buildpack并添加phantomjs
/ casperjs
二进制文件,我本可以调用它:{ {3}}
换句话说,在使用自定义buildpack时,您必须自己包含节点支持。