Pas de binaire pour le navigateur PhantomJS sur votre plate-forme. Please, set "PHANTOMJS BIN" env variable

mon paquet.json ressemble à ça..

"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"

ma version npm est 2.2.0

pourquoi suis-je ce quand je lance le karma test - karma commencer mon.conf.js

25
demandé sur Sanath 2015-02-05 07:26:30

11 réponses

j'avais ce problème avec une version plus ancienne de node, aussi. Si vous ne voulez pas avoir à coder cette variable d'environnement, la mise à jour de votre version de node résoudra le problème. Il suffit de faire la suite (OSX instructions):

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

Edit: mise à jour des instructions pour s'assurer qu'il n'y a pas de dépendance globale à phantomjs

16
répondu Dan Caddigan 2015-04-14 15:55:31

cela semble être un problème avec les versions phantom js runner et phantom js.

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

comment j'ai réglé mon problème..

   //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
18
répondu Sanath 2015-02-08 23:40:29

j'ai rencontré ce même problème. Le correctif est de régler manuellement le PHANTOMJS_BIN variable pour pointer vers le chemin phantomjs correct. Karma launcher essaie de regarder le mauvais chemin défini par PHANTOMJS_BIN.

Voici ce qui a fonctionné pour moi:

$ 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

tout est ok après.

11
répondu Harry Che 2016-06-03 09:58:09

j'ai frappé ce problème avec karma-phantomjs-launcher@1.0.0, où j'avais également installé phantomjs@2.1.3.

désinstaller les deux paquets et réinstaller phantomjs-prebuilt a corrigé le problème avec Karma-phantomjs-launcher:

npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt
4
répondu DJ Lee 2016-02-04 19:28:36

je supprime tout mon dossier node_modules sous mon projet et j'exécute "npm install". Cela n'a régler mon problème.

4
répondu Dom 2016-04-22 18:54:17
a cette ligne: process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'; en haut. Je viens de réaliser que! J'ai fait remarquer, et il fonctionne

2
répondu Mati Tucci 2016-03-05 00:24:47

j'ai rencontré le même problème parfois. J'ai un gruntfile.js et j'ai eu package.json où j'ajoute explicitement phantomjs-prebuilt comme la dépendance. Mais mon serveur de CI peut parfois exécuter grunt karma en douceur alors que parfois il échoue à revendiquer No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable.

donc j'ajoute un grunt taskPHANTOMJS_BIN variable a été réglée avant les essais, puis a résolu le problème ennuyeux.

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

ainsi finalement le Gruntfile.js ressemble à ceci:

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']);
2
répondu Jeff Tian 2016-05-25 09:52:47

j'ai résolu ce problème sur OSX: Supprimer et de créer le fichier karma.config.js en utilisant sudo.

2
répondu Sandro Macedo 2018-05-20 02:01:55

avait le même problème, a fait tout ci-dessus, pas de résultat vient de supprimer le dossier' Karma-phantomjs-launcher ' de global node_modules et de project local, appelé "installation npm" et tout va bien!

1
répondu Dmitri Algazin 2015-06-10 15:38:37

J'ai rencontré un problème comme celui-ci. Ce que j'ai fait, c'est installer les phantomjs globalement npm install -g phantomjs. Puis est allé à l' karma-phantomjs-launcher module de dossier et ouvert index.js fichier. Puis je suis allé à l' phantomJSExePath fonction et commenté le contenu précédent (pas sûr s'il est sûr de faire ce que j'ai fait). Puis j'ai placé

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

M'a évité de retaper l'export temporaire.

1
répondu f123 2016-06-03 10:51:32

exécutez les commandes suivantes:

npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs

une fois que vous avez fait cette installation:

vous obtiendrez un message comme ci-dessous:

Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs

copier ce chemin et exécuter:

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

fondamentalement ce qui se passe est: karma essaye de lancer le navigateur mais ne peut pas trouver sa bin. Une fois que vous exportez le chemin vers le bon chemin, elle s'exécute.

1
répondu nakulchawla09 2017-07-18 13:21:31