1

ばかげた質問かもしれません。もしそうなら、ごめんなさい。

私は最近、Cucumber シナリオを適切に実行するために PhantomJS を必要とする Rails プロジェクトに取り組みました。残念ながら、アプリはそれが PhantomJS に依存しているとは言っていないので、シナリオが失敗したとき、物事が壊れているように見えただけで、その理由ははっきりしませんでした.

エラーを停止させる唯一の方法は、実行することでしたbrew install phantomjs。明らかに、これは gem ではなく、PhantomJS gem をインストールしても何も起こりませんでした。

Railsプロジェクトでgem以外の依存関係を処理する適切な方法は何ですか?

4

2 に答える 2

1

これは些細なことではありません。私の知る限り、宝石/ルビー以外のものへの依存関係を宣言する組み込みユーティリティはありません。Ruby はインタープリター言語であるため、さまざまな環境で実行できます。このレベルで依存関係を管理するのはかなり複雑な作業です。

多くの人がcapistranopuppetなどの展開ツールを使用してこれを処理し、アプリを実行する環境が適切であることを確認し、必要に応じて必要な依存関係をインストールします。通常、これを行うために rake タスクを作成し、それを capistrano 経由で呼び出すか、ユーザーに手動で呼び出してもらいます。

依存関係について人々に警告したい場合、必要な依存関係が環境にインストールされていることをアプリケーションの起動時にチェックする初期化子を使用し、インストールされていない場合は警告を発行する (またはアプリを完全にシャットダウンする) というオプションがあります。

もう 1 つのオプションは、依存関係のチェックを一連のテストとして単純に実行することです。したがって、これらのテストが失敗した場合は、不足しているものに関する詳細な指示を提供できます。

全体として、最低限できることは、ドキュメントに環境の依存関係をリストすることだけです。これがメインのドキュメント ファイルの上にあることを確認してください。

于 2013-03-27T19:17:34.333 に答える
1

標準的な方法はないと思います。

PhantomJS はスタンドアロン アプリケーションであり、そのままインストールする必要があります。アプリケーションが依存している場合、redis または postgreSQL をインストールするのと同じです。

ただし、homebrew を使用してインストールするのは正しかったため、更新の削除が簡単になります。

于 2013-03-27T18:55:10.897 に答える