2017-04-01 7 views
0

私は混乱しています。私はMochaをNPM経由でグローバルにインストールしました。コマンドライン(Windows)からmochaを実行できるので、私は自分の道でMochaをインストールしました。チャイ/モカグローバル/ローカル

私もChaiをグローバルにインストールしましたが、ノードはそれを見つけることができません(Error: Cannot find module 'chai')。

両方とも同じ方法でインストールされているため、グローバルにアクセスできないのはなぜですか?また、Chaiをローカルにインストールする必要があると私が調査したサイトはすべてですか?

+0

「チャイが見つかりません」というエラーが発生した場合、コードの一部を表示できますか? –

+0

'var chai = require( 'chai');'明らかにグローバルにインストールされたモジュールは、デフォルトではノードで利用できません。なぜモカとチャイをローカルに積み込むと言っているのですか?答えをリンクしていますか? Chaiパッケージの複数のコピーを同じマシンに置くことが本当に便利な理由はありますか? – Robin

答えて

0

私はChaiをローカルにインストールする必要があると私が調査したサイトは何故ですか?

ようモカとチャイの両方がローカルにインストールする必要があります。あなたはその必要性モカとチャイを使用し、他のパッケージとの競合を排除

  1. あなたのpackage.jsonには、あなたのプロジェクトに貢献しているMochaとChaiの人々のどのバージョンをテストを実行するためにインストールするべきかを指定します。

問題は、モカとチャイの両方がまだ進化していることです。新しい機能が追加され、新しい機能が新しいバグになります。過去のさまざまな時点で、バグのために私のパッケージのいくつかが使用していたMochaまたはChaiのバージョンを固定しなければなりませんでした。たとえば、Mocha 2.4.xはテストスイートで正常に動作しますが、Mocha 2.5ではテストが失敗するバグが導入されました。問題を回避する最速の方法は、Mochaのバージョンを私のプロジェクトで2.4.0以上2.5未満のいずれかのバージョンに使用するようピン留めし、2.5で修正を行うまで待つことでした。実際に起こった実際の状況ですが、私は正確なバージョン番号を思い出すことはありません。同じことがChaiのさまざまな時点で起こっています。

新しいメジャーバージョン(2.x - > 3.xなど)でリリースされた場合、以前のバージョンで動作していたコードが新しいバージョンでは動作しない可能性があります。 2.xは必要ですが、3.xでは動作しないパッケージと3.xが必要ですが、2.xでは動作しないパッケージがあり、それらがパッケージのグローバルインストールを使用しようとすると、それは問題です。ローカルにインストールされたバージョンを使用する場合は、必要なバージョンを使用できます。

取得しているエラーメッセージを再現できません。私はプロジェクトのためにモカをローカルにインストールして問題なしにグローバルチャイを見つけることができます。

+0

私が何をすべきかにかかわらず、私がしたいことは、MochaとChaiをグローバルにインストールし、一緒に1つのユニットとして動作させることです。 PHPUnitと同様に、私は 'PHPUnit \ Framework \ TestCase;を'テストファイルに入れてもいいですか? – Robin