2016-09-03 3 views
0

私のnode_modulesには、package.jsonの依存関係にリストされていないパッケージがあります。そのため、これらのパッケージは依存関係の依存関係であると推測しています。これをどうやって確認できますか?私は、node_modulesディレクトリに不要なパッケージがないことを確認したい。node_modulesディレクトリで不要なパッケージをチェックするにはどうすればよいですか?

答えて

2

あなたの依存関係のリストを再インストールするにはあまりにも長い間を取ることはありません場合は、簡単なオプションは、テーブルフリップです:完全node_modulesディレクトリを削除して再作成するために、npm installを実行します。

あなたがそれをしたくない場合は、depcheckのようなあなたの依存関係を調べるツールを試してみてください。@ sagar-gopaleは回答に示唆しています。

関連度:npm -vを実行して、npm v2またはv3を実行しているかどうかを確認してください。 @cartantの回答では、v3を使用してnode_modulesディレクトリが最大限フラットになります。つまり、他のモジュールのサブディレクトリとして表示されていたもの(npm v2をインストールした場合)は、node_modulesの最上位に表示されます。それはあなたが予想している以上に多くのモジュールを見る理由かもしれません。

+0

私はテーブルフリップの最初のオプションを実行しましたが、デポを実行すると、まだ使用していることがわかっている多くの "未使用の依存関係"が表示されます。これを根拠にしたディシェックとは何ですか?私は 'npm install -g depcheck react jsx'もやっていました。なぜなら、私はその種のアプリケーションを構築しているからです。しかし、私がes6を使っているなら、それも含めていますか?それが構文サポートを持つことはどういう意味ですか? – stackjlei

1

NPM 3を使用している場合、NPM 3が依存関係階層を平坦化するため、node_modulesディレクトリには期待していない多数のモジュールが表示されることがあります。

どちらのバージョンを使用していても、npm listコマンドを実行する場合、NPMは不要な不要なモジュールを強調表示する必要があります。

+0

とにかく依存関係の階層を平坦化していないので、必要なものだけが表示されますか? – stackjlei

+1

'npm list --depth = 0'コマンドを実行すると、ルートレベルのモジュールだけが表示されます。通常は、モジュールを 'package.json'に依存関係として追加し、' npm install'を実行して、追加したものをインストールします。依存関係を実際に使用しているかどうかを知る必要がある場合は、 'depcheck'のようなツールがあります。 – cartant

0

パッケージには他のパッケージが必要な場合があるため、node_modulesフォルダ内にpackages.jsonファイルに存在しないパッケージがあるため、指定したパッケージのいずれにも必要ないわけではありません。

解決策のルートディレクトリでnpm pruneコマンドを実行すると、依存関係ツリーが読み込まれ、本当に不要になったパッケージが削除されます。

関連する問題