3

PhantomJS を使用する Heroku に Node.js/Express アプリがあります。すべてがローカルで正常に実行されます (NPM を使用してセットアップしたPhantomJS - ノード ラッパーを使用しています) が、運用環境にデプロイした後にエラーが発生します。

Express 500 エラー: モジュール 'phantomjs' が見つかりません

Buildpack をセットアップする必要があることがわかったので、以下を実行しました。

heroku config:add BUILDPACK_URL= https://github.com/stomita/heroku-buildpack-phantomjs.git git push heroku master

しかし、それでもエラーが発生しました。また試しました:

heroku config:set BUILDPACK_URL= https://github.com/stomita/heroku-buildpack-phantomjs.git git push heroku master

同じ結果です。

この BUILDPACK_URL は無視されていると思います。

考え?

4

2 に答える 2

4

これは役に立ちました。このヘッドレスブラウジングには多くの調査が必要であり、詳細が他の人に役立つ可能性があるため、コメントを回答に移動しています。

ファントムの名前は紛らわしいです。Phantom JSはノード モジュールではないため、npm レジストリから直接ダウンロードすることはできません。ローカル開発用にphantomjs.orgから 実行可能バイナリをダウンロードしてコンピューターにインストールし、ビルドパックを使用して Heroku にインストールできます。

これら 2 つの一般的な Phantom JS の Node ラッパーをインストールできます。 これらはコアの phantomjs.org プロジェクトの一部ではありませんが、Node アプリからそのライブラリを実行できるようにします。

  1. 質問で参照されているnpm phantomjs 。このモジュールは、phantomjs 実行可能ファイルの安定したバージョンを依存関係としてダウンロードしようとしますnpm install phantomjs --save。バイナリは、サーバーが Phantom JS を探すことを認識しているディレクトリに格納されているため、この質問に回答しました。
  2. npmファントム

Phantom ラッパーとカスタム ビルドパックを使用npm phantomして、Phantom JS バイナリを Heroku にインストールすることにしました。バージョン 1.9.x を実行している Heroku を搭載した Mac で Phantom JS 2.0 を使用するのは好きではありません。いくつかの問題があるため、Linux 2.0 はまだ利用できません。

Herokubuildpacks:add --index 1では、数値位置のフラグを使用してビルドパックの順序をオプションで設定するなど、いくつかのマイナーな構文変更が行われました。実行heroku buildpacksして、使用しているものとインストールされる順序を確認します。

Buildpack の使用が 1 つしかなく:set、Buildpack を提供する必要があるhttps場合は、古い Phantom の例をコピーしてhttpリポジトリに貼り付けることはできません。

Heroku の公式ノード ビルドパック

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-nodejs

非公式の Phantom JS ビルドパック (npm モジュールではありません)

heroku buildpacks:add https://github.com/stomita/heroku-buildpack-phantomjs

于 2015-09-29T20:59:58.827 に答える