1

나는 을 heroku에 사용하기 위해 this buildpack을 사용합니다. 내 응용 프로그램이 생성되면빌드와 heroku에 간부와 PATH

, 내 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 

execPATH에있는 casperjs을 찾을 수없는?

PS : 나는 spawn으로 시도했지만 더 이상 행운 ...

[편집] : 여기 시험 가능한 요점 https://gist.github.com/3856317

+1

당신은'casperjs' 명령이 틀리며'node' 명령이 안된다고 확신합니까? – vinayr

+0

@vinayr : 당신 말이 맞아요, 나는 단순히'heroku run node'를 시도하고'bash : node : command not found '를 얻습니다. 그러나 어떻게 가능합니까? 저는 괜찮은'package.json'을 가지고 있습니다. 그래서이 응용 프로그램은 노드 1로 탐지되어야합니다 ... 어떤 단서가 있습니까? 고맙습니다. – abernier

답변

2

는 알았어요!

@vinayr : you were right,도 execcasperjs 명령이이 문제에 참여했다, 그것은 command not found했다 node이었다!

phantomjscasperjs (예 : heroku-buildpack-casperjs)으로 빌드 팩을 설치하면 내 응용 프로그램의 노드 기능이 유지 될 수 있다고 생각되지만 그렇지 않습니다. heroku-buildpack-nodejs-casperjs을 :

는 차라리 heroku-buildpack-nodejs buildpack 포크와 내가 불렀다 수있는, 그것을 phantomjs/ casperjs 바이너리를 추가했다 (노드 + phantomjs + casperjs)를 작동하게합니다.

즉, 사용자 정의 buildpack을 사용하는 경우 노드 지원을 직접 포함시켜야합니다.

+1

또는 멀티 팩을 사용할 수 있습니다. 이렇게하면 모든 것을 묶을 필요가 없습니다. https://github.com/ddollar/heroku-buildpack-multi –