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
古いバージョンのノードでもこの問題が発生していました。この環境変数をハードコーディングする必要がない場合は、ノードのバージョンを更新すると問題が解決します。以下を実行するだけです(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依存関係がないことを確認するための手順を更新しました
これは、ファントム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
私はこの同じ問題に出くわしました。修正するには、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
その後はすべて大丈夫です。
プロジェクトの下にあるnode_modulesフォルダーをすべて削除し、「npm install」を実行します。これで問題が解決しました。
私は[email protected]もインストールした[email protected]でこの問題に遭遇しました。
Phantomjsは非推奨であり、phantomjs-prebuiltに置き換えられています。
両方のパッケージをアンインストールし、phantomjs-prebuiltを再インストールすると、karma-phantomjs-launcherの問題が修正されました。
npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt
OSXでこの問題を解決しました:ファイルを削除して作成しますkarma.config.js
Sudoを使用。
俺の karma.conf.js
次の行がありました:process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs';
頂点で。私はちょうどそれを実現しました!私はそれをコメントし、それは動作します
私は時々同じ問題に出会いました。 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']);
同じ問題があり、上記のすべてを実行しましたが、グローバルnode_modulesおよびプロジェクトローカルから「karma-phantomjs-launcher」フォルダーを削除しただけで、「npm install」と呼ばれ、すべて問題ありません!
以下のコマンドを実行します。
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
基本的に何が起こっているのですか:カルマはブラウザを起動しようとしていますが、そのビンを見つけることができません。パスを正しいパスにエクスポートすると、実行されます。
このような問題に遭遇しました。 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';
一時エクスポートの再入力から私を救った。