かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

npm パッケージの依存しているパッケージを知りたいぞい!

npm パッケージを使っていてライブラリのアップデートが速いものは、新しくなった方法を試そうとしたら依存しているパッケージが変更になっていたりでハマってしまうことが割とあります。
このパッケージが依存してるライブラリ何?が知りたい時のメモ

npm view dependencies で依存パッケージを表示できる

npm view コマンドでパッケージのいろいろな情報を見ることができます。
これに dependencies オプションを付けると直接依存しているパッケージだけを表示してくれます!

# react の直接依存パッケージ少ない!
$ npm view react@17.0.2 dependencies
{ 'loose-envify': '^1.1.0', 'object-assign': '^4.1.1' }
# @apollo/client だとこんな感じ
$ npm view @apollo/client@3.4.16 dependencies
{
  '@graphql-typed-document-node/core': '^3.0.0',
  '@wry/context': '^0.6.0',
  '@wry/equality': '^0.5.0',
  '@wry/trie': '^0.3.0',
  'graphql-tag': '^2.12.3',
  'hoist-non-react-statics': '^3.3.2',
  optimism: '^0.16.1',
  'prop-types': '^15.7.2',
  'symbol-observable': '^4.0.0',
  'ts-invariant': '^0.9.0',
  tslib: '^2.3.0',
  'zen-observable-ts': '~1.1.0'
}

npm list で自分のプロジェクトにインストールされているパッケージのリストを表示できる

$ npm list
search-repos-app@0.1.0 /Users/kikiki/graphql-with-react/
├── @apollo/client@3.4.16
├── @testing-library/jest-dom@5.14.1
├── @testing-library/react@11.2.7
├── @testing-library/user-event@12.8.3
├── graphql@15.6.1
├── react-dom@17.0.2
├── react-scripts@4.0.3
├── react@17.0.2
└── web-vitals@1.1.2

昔は npm list だと node_modules のパッケージが全部ズラーっと出たので --depth=0 オプションを使ってた記憶だったけど npm v8.1.0 では npm list でプロジェクトの直接的な依存パッケージだけ表示してくれるようになっていた。

Huge な node_modules のリストを見たいときは npm list --all とすれば深淵を覗き込むことができる。

所管

npm view コマンド全然使ってなかったので、パッケージのことを知るのに便利でした。
おわり ₍ ᐢ. ̫ .ᐢ ₎


[参考]