web-dev-qa-db-fra.com

Pas de binaire pour le navigateur PhantomJS sur votre plateforme. Veuillez définir la variable env "PHANTOMJS_BIN"

Mon package.json ressemble à ceci ..

"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 est-ce que j'obtiens ceci quand j'exécute le test de karma - karma start my.conf.js

26
Sanath

J'avais aussi ce problème avec une ancienne version de node. Si vous ne voulez pas avoir à coder en dur cette variable d'environnement, la mise à jour de votre version de nœud résoudra le problème. Procédez simplement comme suit (instructions OSX):

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

Edit: instructions mises à jour pour s'assurer qu'il n'y a pas de dépendance globale aux fantômes

16
Dan Caddigan

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ésolu 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
19
Sanath

J'ai rencontré ce même problème. Le correctif consiste à définir manuellement le PHANTOMJS_BIN variable pour pointer vers le bon chemin fantôme. D'une manière ou d'une autre, le lanceur de karma 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 va bien après ça.

12
Harry Che

Je supprime tout mon dossier node_modules sous mon projet et lance "npm install". Cela a résolu mon problème.

4
Dom

J'ai rencontré ce problème avec [email protected], où j'avais également installé [email protected].

Il s'avère que phantomjs est obsolète, remplacé par phantomjs-prebuilt.

La désinstallation des deux packages et la réinstallation de phantomjs-prebuilt ont résolu le problème avec karma-phantomjs-launcher:

npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt
4
DJ Lee

J'ai résolu ce problème sur OSX: Supprimer et créer un fichier karma.config.js en utilisant Sudo.

2
Sandro Macedo

Ma karma.conf.js avait cette ligne: process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'; au sommet. Je viens de réaliser ça! Je l'ai commenté et ça marche

2
Mati Tucci

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

J'ajoute donc un grunt task pour garantir la PHANTOMJS_BIN variable a été définie avant les tests, puis a résolu le problème gênant.

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

Alors finalement, le Gruntfile.js ressemble à ça:

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
Jeff Tian

eu le même problème, a fait tout ce qui précède, aucun résultat vient de supprimer le dossier 'karma-phantomjs-launcher' du global node_modules et du projet local, appelé 'npm install' et tout va bien!

1
Dmitri Algazin

Exécutez les commandes ci-dessous:

npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs

Une fois que vous avez fait cette installation:

vous obtiendrez un message comme celui-ci:

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

Copiez ce chemin et exécutez:

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

Fondamentalement, ce qui se passe est le suivant: le karma essaie de lancer le navigateur mais ne parvient pas à trouver son bac. Une fois que vous avez exporté le chemin vers le bon chemin, il s'exécute.

1
thenakulchawla

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

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

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

1
f123