web-dev-qa-db-ja.com

package.json生成/ npm未使用パッケージ

プロジェクトに単体テストを導入しています。このために、自分でpackage.jsonファイルを作成する必要があります。

最初の質問は、どのunit testing suiteを使用していますか? Node.jsプロジェクトの標準と思われるmochaを楽しみにしています。

2番目の質問は:package.jsonファイルを生成する魔法の方法はありますか? (依存関係とバージョンの場合)

番目の質問は:プロジェクトの開発中に多くのnpm packagesをテストしてきましたが、今ではおそらく未使用のパッケージがたくさんあります。どちらが役に立たないかを判断する方法はありますか? (私はnpm list installedを見ましたが、これは便利です)

22
Tommy B.
  1. 私もモカを使っています。コードカバレッジ、BDD、TDDがあり、ブラウザで実行されます。それはかなり完全であり、TJという名前の最も優秀なjavascript /node.jsプログラマーの1人によってかなり維持されていると思います。

  2. 使用するバージョンを推測することはほとんど不可能です。 npmは、どのバージョンがどの依存関係を壊すかを知らないためです。 node-detective のようなものを使用して、すべての依存関係をインストールできます。次に、javascript内からnpm.jsを使用してそれらをインストールできます。将来的にはこれに取り組みたいと思います。

  3. また、おそらくすべての依存関係を削除します。次に、step(2)を使用して必要な依存関係をインストールし直します。しかし、現在のHDでは、ディスクスペースはそれほど大きな問題ではなくなりました。

追伸:私もドメニックに同意すると思います

6
Alfred
  1. 私はモカを使用しています。

  2. npm init

  3. npm lsは、package.jsonにないものの横に「外部」をリストします。しかし、まだpackage.jsonを持っていないようです。


基本的に、ワークフローは非常に逆方向です。動作の目的は次のとおりです。

  1. npm initで新しいプロジェクトを開始します。依存関係はありません。
  2. ああ、私はパッケージを使い始めたい、例えばexpress?依存関係の下のpackage.jsonに追加してから、npm installを実行します。
  3. ああ、開発用のパッケージを使い始めたいのですが、mocha?それをdevDependenciesの下のpackage.jsonに追加してから、npm installを実行します。

手動でインストールされたパッケージ(npm install <packageName>経由)を含む既存のコードがあるようですが、これは混乱しています。上記のワークフローを最初からやり直すことをお勧めします。

34
Domenic

3番目の質問に答えるには:

npm Prune

package.jsonに記載されていないインストール済みモジュールをすべて削除します。


そして、あなたは本当に3つの別々の質問をするべきでした。

20
Max Truxa
  1. 私は誓いを使っています。それはかなり良いですが、完璧ではありません。ノードでのユニットテストは、dbsなどへの非同期コールバックのためにしばしば困難であることがわかり、主にトップレベルの機能をテストしてきました。

  2. これがあなたの魔法です: Shrinkwrapを使用したNode.jsの依存関係の管理

  3. 使用しているパッケージを知る唯一の方法は、知ることです。これをプログラムで生成することはできません。私のアドバイスは、パッケージを積極的に削除してから、すべての機能を再テストすることです。機能が壊れた場合は、パッケージの1つを再インストールする必要があることがわかります。

3
ControlAltDel

3番目の質問に答えると、 Sweeper を使用して未使用の依存関係を一覧表示し、package.jsonからそれらを削除できます。ただnpm install -g sweeper次に、プロジェクトディレクトリでコマンドラインでsweeperを呼び出します。

2
Luiz Sócrate