가끔 같은 문제가 발생했습니다. 나는 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']);
메시지는 매우 명확합니다. 컴퓨터에 PhantomJS가 설치되어 있지 않습니다. 'karma-phantomjs-launcher'는 PhantomJS의 바이너리를 다운로드하고 가능한 경우 컴퓨터에 설치해야합니다 : 수동으로 설치하지 않고 PHANTOMJS_BIN을 사용하여 환경 변수에 경로를 추가 할 필요가 없기 때문입니다. – MarcoL
@MarcoCI 나는 동일한 문제가 있으며 사실'karma-phantomjs-launcher'와 함께 설치된 phantomjs의 바이너리가 있습니다. –
@Flek : 그러면 아래 답변과 같이 해당 파일의 경로를 내 보냅니다. – MarcoL