1

我使用这个 buildpack是为了在 heroku 上使用casperjs

一旦我的应用程序创建,我检查我的PATH

$ heroku config:get PATH
/usr/local/bin:/usr/bin:/bin:/app/vendor/phantomjs/bin:/app/vendor/casperjs/bin

好的,casperjs 在这里!

--

档案

scraper: node scraper.js

刮刀.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

4

1 回答 1

2

知道了!

@vinayr:你是对的,这个问题既不涉及命令,exec也不涉及命令,它是!casperjsnodecommand not found

phantomjs我认为使用and安装 buildpack casperjs(例如:heroku-buildpack-casperjs)会为我的应用程序保留节点功能,但似乎并非如此。

为了让它工作(node+phantomjs+ca​​sperjs),我宁愿分叉heroku-buildpack-nodejs buildpack 并向它添加phantomjs/casperjs二进制文件,我可以称之为:heroku-buildpack- nodejs - casperjs

换句话说,当使用自定义 buildpack 时,您必须自己包含节点支持。

于 2012-10-10T09:04:19.523 回答