モチベーション
npmでインストールしているパッケージの、実際のバージョンを把握したいときがあります。
package.json
の dependencies
や devDependencies
にバージョンが記載されていますが、このバージョンは実際にインストールされているバージョンと異なります。
もちろん package-lock.json
を見れば正確なバージョンが分かりますが、、、
ここはサクッとシェルからバージョンを取得できたら嬉しいですね。
ワンライナー
JSON形式で npm ls --depth=0
から返ってくる値を、 jq
コマンドを使って整形しています。
npm ls --depth=0 --json 2>/dev/null | jq '.dependencies | to_entries | map(select(.value.extraneous != true)) | map( { key: .key, value: .value.version } ) | from_entries'
※ jq
がないと動きません。
表示される結果例
{
"npm": "7.10.0"
}