25

내 package.json은 다음과 같습니다하시기 바랍니다 ..플랫폼에 PhantomJS 브라우저 용 바이너리가 없습니다. 설정 "PHANTOMJS_BIN"ENV 변수

"karma-phantomjs-launcher": "^0.1.4", 
"karma-safari-launcher": "^0.1.1", 
"karma-sinon-chai": "~0.2.0", 
"karma-spec-reporter": "~0.0.16", 
"mocha": "~1.20.1" 

내 NPM 버전은 내가 카르마 테스트를 실행할 때 whay 내가이 무엇입니까 2.2.0

입니다 - 카르마 시작 my.conf.js

+3

메시지는 매우 명확합니다. 컴퓨터에 PhantomJS가 설치되어 있지 않습니다. 'karma-phantomjs-launcher'는 PhantomJS의 바이너리를 다운로드하고 가능한 경우 컴퓨터에 설치해야합니다 : 수동으로 설치하지 않고 PHANTOMJS_BIN을 사용하여 환경 변수에 경로를 추가 할 필요가 없기 때문입니다. – MarcoL

+1

@MarcoCI 나는 동일한 문제가 있으며 사실'karma-phantomjs-launcher'와 함께 설치된 phantomjs의 바이너리가 있습니다. –

+1

@Flek : 그러면 아래 답변과 같이 해당 파일의 경로를 내 보냅니다. – MarcoL

답변

16

나는이 노드의 이전 버전이 문제가 발생했다를 고정하는 방법

https://github.com/karma-runner/karma-phantomjs-launcher/issues/31

. 이 환경 변수를 하드 코딩하지 않으려면 노드 버전을 업데이트하면 문제가 해결됩니다. 그냥 다음 (OSX의 지침을) 수행

npm uninstall -g phantomjs 
npm cache clean -f 
brew upgrade nodejs 
rm -rf node_modules 
npm install -g YOUR_GLOBAL_DEPENDENCIES 
npm install 

편집 : 업데이트 된 지침을 확인 나는이 같은 문제로 실행

+0

을 실행하여 문제를 해결했습니다.이 명령은 처음에는 솔루션에 더 많은 문제를 일으키는 것으로 보였지만 결국에는 해결했습니다. 'brew upgrade nodejs'가 나에게 도움이 안되었습니다.'Error : node not installed'가 있습니다. 그러나 phantomjs를 설치 해제하고, npm 캐시를 정리하고, npm을 사용하여 패키지를 다시 설치하는 것이 플랫폼에 PhantomJS 브라우저 용 바이너리 없음을 지운 것으로 보입니다. "PHANTOMJS_BIN"env variable' 오류를 설정하십시오. 고맙습니다! – Mike

+0

정확히 내가 왜 그 (것)들에 착수하고 싶지 않은지. 나는 다른 문제를 치료하기 위해 물리적으로 노드를 다운 그레이드했다. 그 tonite에 대한 시간이 없어 – blamb

+0

처음이 작업을 수행 할 수 있지만 시스템을 닫고 응용 프로그램을 다시 시작할 때마다 다시해야합니다. 이 오류를 영구히 제거 할 수있는 방법이 있습니까? – nakulchawla09

18

이것은 팬텀 js 러너 및 팬텀 js 버전의 문제인 것으로 보입니다. 내 문제 .. 너무

//install 
    npm install -g karma-phantomjs-launcher 

    //temporary path.. set the path 
    export PHANTOMJS_BIN=/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs 

    karma start my.conf.js 
10

의존성 전역 phantomjs이 없는지 확인 할 수 있습니다. 이 문제를 해결하려면 PHANTOMJS_BIN 변수를 올바른 phantomjs 경로를 가리 키도록 수동으로 설정해야합니다. 여하튼 카르마 발사기는 PHANTOMJS_BIN에 의해 설정된 잘못된 경로를 보려고합니다. 여기

은 나를 위해 일한 무엇인가

$ echo $PHANTOMJS_BIN 

/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs

$ export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs 

$ grunt test 

모든 그 이후 괜찮습니다.

1

는 같은 문제가 없었다 무엇보다도, 어떤 결과 그냥 'NPM 설치', 글로벌 node_modules 및 프로젝트에서 '카르마 - phantomjs - 시작 프로그램'폴더 지역이라고 을 삭제하지 않고 모든 괜찮했다!

1

이 문제와 같은 문제가 있습니다. 내가 한 일은 전세계 팬텀을 설치하는 것입니다. npm install -g phantomjs. 그런 다음 karma-phantomjs-launcher 모듈 폴더로 가서 index.js 파일을 열었습니다. 그런 다음 나는 phantomJSExePath 함수에 가서 이전 내용을 주석 처리했습니다 (내가 한 일을하는 것이 안전한지 확실하지 않음). 그 다음에 배치했습니다

return 'C://Users/user/AppData/Roaming/npm/node_modules/phantomjs/lib/phantom/phantomjs.exe'; 

내게 임시 내보내기를 다시 입력하지 마십시오.

4

필자도 [email protected]을 설치 한 [email protected]으로이 문제를 겪었습니다.

phantomjs가 더 이상 사용되지 않으며 phantomjs-prebuilt로 대체되었습니다.

두 패키지를 모두 제거하고 phantomjs - 사전 구축은 업 - phantomjs 발사기와 문제를 해결 다시 설치 :

karma.conf.js
npm -g remove phantomjs phantomjs-prebuilt 
npm -g install phantomjs-prebuilt 
2

이 줄을했다 : 상단에 process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs';. 방금 그걸 깨달았 어!나는 그것을 주석했고 작동한다.

4

나는 내 프로젝트의 모든 node_modules 폴더를 제거하고 "npm install"을 실행한다. 이것은 내 문제를 해결했다.

2

가끔 같은 문제가 발생했습니다. 나는 gruntfile.js을 가지고 있는데 package.json을 명시 적으로 phantomjs-prebuilt을 종속성으로 추가했습니다. 하지만 때로는 내 CI 서버 grunt karma 원활하게 실행할 수 있습니다 때로는 No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable 주장 실패합니다.

그래서 grunt task을 추가하여 테스트를 실행하기 전에 PHANTOMJS_BIN 변수가 설정되었는지 확인한 다음 문제를 해결했습니다.

grunt.registerTask('ensurePhantomJsPath', function() { 
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs'; 
    console.log(process.env.PHANTOMJS_BIN); 
}); 

그래서 마침내 Gruntfile.js은 다음과 같습니다

grunt.registerTask('ensurePhantomJsPath', function() { 
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs'; 
    console.log(process.env.PHANTOMJS_BIN); 
}); 

grunt.registerTask('test', ['ensurePhantomJsPath', 'karma']); 
1

을 실행하여 아래의 명령을 :

npm remove phantomjs -g 
npm remove phantomjs 
npm install phantomjs 

이 설치 이렇게되면 :

이 같은 메시지를 받게됩니다 아래 하나 :

0 이 경로 및 실행
Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs 

복사 :

export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs 

는 기본적 무슨 일이 일어나고 있는지입니다 : 카르마는 브라우저를 실행하려고하지만 빈을 찾을 수 없습니다. 경로를 올바른 경로로 내 보내면 경로가 실행됩니다.