npm outdatedとは?見方(Current・Wanted・Latestの意味)などを解説!

この記事では『npm outdated』について、

  • npm outdatedとは
  • npm outdatedの実行結果の見方(Current・Wanted・Latestの意味)

などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。

npm outdatedとは

npm outdatedは現在のプロジェクトにインストールされているパッケージ(ライブラリやツール)をチェックし、パッケージに新しいバージョンが存在するかどうかを確認するコマンドです。

では実際に「npm outdated」コマンドを実行してみましょう。

まず、以下のコマンドを実行して、あえて古いバージョンのパッケージ(例えば、jQueryのバージョン2.2.1など)をインストールします。

npm install jquery@2.2.1

実行結果

PS C:\test> npm install jquery@2.2.1

added 1 package in 602ms

すると、package.jsonは以下のようになります。

{
  "dependencies": {
    "jquery": "^2.2.1"
  }
}

ここで、以下に示す「npm outdated」コマンドを実行すると、jQueryに新しいバージョンがあることを教えてくれます。

npm outdated

実行結果

PS C:\test> npm outdated
Package  Current  Wanted  Latest  Location             Depended by
jquery     2.2.1   2.2.4   3.7.1  node_modules/jquery  test       

上記の実行結果より、以下のことが分かります(後ほどこの見方について詳しく説明します)。

  • 現在インストールされているjQueryのバージョンは2.2.1
  • package.jsonに記述されている「^2.2.1」の条件を満たすパッケージは2.2.4
  • jQueryの最新バージョンは3.7.1

npm outdatedの実行結果の見方(Current・Wanted・Latestの意味)

「npm outdated」コマンドの実行結果を見ると、インストールされているパッケージに対して、Current、Wanted、Latestという3つの列が表示されています。それぞれの列の意味を以下に示します。

Currentの意味

プロジェクトに現在インストールされているバージョンです。

Wantedの意味

package.jsonに記載されたsamverの条件を満たす範囲に基づいてアップデート可能なバージョンです。

「package.json」の「^2.2.1」という記述は「2.2.1 <= n < 3.0.0」という範囲までアップデートを許容するという意味になります。jqueryにおいては2.x系の最新バージョンは2.2.4なので、Wanted列には2.24と記載されています。

semverとは?

semverは「Semantic Versioning」の略であり、ソフトウェアのバージョニングを管理するための規則や仕様のことを指します。

samverの基本的な形式は「メジャーバージョン.マイナーバージョン.パッチバージョン」です。例えば、2.3.1というバージョン番号において、パッケージの変更があった際にどのバージョン番号が増加するのかを以下に示します。

  • メジャーバージョン(2)
    • 後方互換性のない変更が加えられた時に1つ増加する。
  • マイナーバージョン(3)
    • 後方互換性を保ちつつ、「新しい機能の追加」や「ドキュメントの追加」が行われた時に1つ増加する。
  • パッチバージョン(1)
    • 後方互換性のあるバグ修正や「ドキュメントの修正」が行われた時に1つ増加する。

Latestの意味

パッケージの最新バージョンです。

本記事のまとめ

この記事では『npm outdated』について、以下の内容を説明しました。

  • npm outdatedとは
  • npm outdatedの実行結果の見方(Current・Wanted・Latestの意味)

お読み頂きありがとうございました。