web-dev-qa-db-ja.com

プラットフォーム上のPhantomJSブラウザーのバイナリはありません。 「PHANTOMJS_BIN」環境変数を設定してください

Package.jsonは次のようになります。

"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バージョンは2.2.0です

カルマテストを実行すると、これを取得できますか?-カルマスタートmy.conf.js

26
Sanath

古いバージョンのノードでもこの問題が発生していました。この環境変数をハードコーディングする必要がない場合は、ノードのバージョンを更新すると問題が解決します。以下を実行するだけです(OSXの指示):

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

編集:グローバルなphantomjs依存関係がないことを確認するための手順を更新しました

16
Dan Caddigan

これは、ファントムjsランナーおよびファントムjsバージョンの問題のようです。

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

問題の修正方法..

   # 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

私はこの同じ問題に出くわしました。修正するには、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

その後はすべて大丈夫です。

12
Harry Che

プロジェクトの下にあるnode_modulesフォルダーをすべて削除し、「npm install」を実行します。これで問題が解決しました。

4
Dom

私は[email protected]もインストールした[email protected]でこの問題に遭遇しました。

Phantomjsは非推奨であり、phantomjs-prebuiltに置き換えられています。

両方のパッケージをアンインストールし、phantomjs-prebuiltを再インストールすると、karma-phantomjs-launcherの問題が修正されました。

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

OSXでこの問題を解決しました:ファイルを削除して作成しますkarma.config.js Sudoを使用。

2
Sandro Macedo

俺の karma.conf.js次の行がありました:process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'; 頂点で。私はちょうどそれを実現しました!私はそれをコメントし、それは動作します

2
Mati Tucci

私は時々同じ問題に出会いました。 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']);
2
Jeff Tian

同じ問題があり、上記のすべてを実行しましたが、グローバルnode_modulesおよびプロジェクトローカルから「karma-phantomjs-launcher」フォルダーを削除しただけで、「npm install」と呼ばれ、すべて問題ありません!

1
Dmitri Algazin

以下のコマンドを実行します。

npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs

このインストールを行ったら:

次のようなメッセージが表示されます。

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

基本的に何が起こっているのですか:カルマはブラウザを起動しようとしていますが、そのビンを見つけることができません。パスを正しいパスにエクスポートすると、実行されます。

1
thenakulchawla

このような問題に遭遇しました。 phantomjsをグローバルにインストールしましたnpm install -g phantomjs。その後、karma-phantomjs-launcherモジュールフォルダーを開き、index.jsファイル。それからphantomJSExePath関数に行き、以前の内容をコメントアウトしました(私がしたことをしても安全かどうかわかりません)。それから私は置きました

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

一時エクスポートの再入力から私を救った。

1
f123