それにもかかわらず、チュートリアルのようなdevDependenciesにあるmochaは十分に論理的です、それはすべてのdev依存関係です。なぜmochaはdevDependenciesになる必要がありますか?
実際には、-gをインストールすると、mochaをコマンドとして実行できます。そして、私が言うことができる限り、あなたのパッケージに言及されているかどうかはまったく違いはありません。
明示的にリストする必要はありませんか?
それにもかかわらず、チュートリアルのようなdevDependenciesにあるmochaは十分に論理的です、それはすべてのdev依存関係です。なぜmochaはdevDependenciesになる必要がありますか?
実際には、-gをインストールすると、mochaをコマンドとして実行できます。そして、私が言うことができる限り、あなたのパッケージに言及されているかどうかはまったく違いはありません。
明示的にリストする必要はありませんか?
オープンソースプロジェクトで作業している場合、目標の1つは他の開発者がすぐに寄稿を開始できるようにすることです。
新しい開発者がテストを実行するだけでなく、プロジェクトをすぐに構築して実行できる可能性が高いことの1つがたくさんあります。そのためには、開発者がプロジェクトに貢献するために必要なすべてのツールを簡単にインストールする方法を提供することができます。
これには含まれています:
を一方、プロジェクトのユーザーはするつもりはない可能性がありますそのうちのどれかが必要です。これは、dependencies
とdevDependencies
を分割する正当な理由です。その上で
、それはあなたが、例えば、npm test
を実行できるように、便利なscripts
を提供するために、あなたのpackage.json
を編集すると便利です。その後npm test
あなたnode_modules
から特定のmocha
を実行しようとしている
{
...
"scripts": {
...
"test": "mocha -opts mocha.opts ...tests..."
}
}
:それは次のように指定するのが一般的です。
くそ、それに打ちなさい – slebetman
グローバルにインストールすると、すべてのプロジェクトで1つのバージョンになります。
dev依存関係の場合、各プロジェクトはそのプロジェクト固有のバージョンを使用している可能性があり、プロジェクトは制御された方法で新しいバージョンに移行できます。
他のモジュールがグローバルにではなくプロジェクト固有にロードされているのとほぼ同じ議論です。
ローカル依存関係で、グローバルパスを使用するときにmochaを使用するのではなく、相対パスで毎回mochaを実行する必要があることを示すのに役立つでしょう。 –
@ ssc-hrep3:確かに、最近の人はnpmスクリプトや他のタスクランナーを使用する傾向があります...-) –
mochaをコマンドとして実行する必要がないためです。あなたはnode_modules
からそれを実行することができます:./node_modules/.bin/mocha
。
Npmはこれを特別にサポートしています。あなたはpackage.jsonに次がある場合:
"scripts": {
"test": "mocha"
},
"devDependencies": {
"mocha": "*"
}
を次に、あなたがモカがグローバルにインストールされていない場合でも、npm test
を実行することができます。
だから、これはどういう意味ですか?まず、開発環境をセットアップするために他の開発者と共同作業する場合は、npm install
以上のことをする必要はありません。
第二に、私はより有用だと思う、これはTravisのような他のツールを使ってプロジェクトを統合することを容易にされるなど
もちろんTravisなどのツールを使うのは、あなたがあなたのレポに変更をプッシュするとき、私には個人的に私はちょうど人々がGithubで持っているそれらの派手なビルドバッジが欲しい:D – slebetman
あなたはノードモジュールからモカ実行可能ファイルを呼び出す、またはプログラムモカ構成で動作することができ、また、それがロックされますバージョン – Gntem