TORIPIYO DIARY

recent events, IoT, programming, security topics

package.jsonの記述を満たすようにnpmのパッケージをアップデート

ちょっと調べたことを忘れないようにブログに残しておきます。

nodejsでアプリケーションを開発していて、npmのパッケージをpackage.jsonの記述を満たす最新バージョンに更新したいことがあると思います。

例えば、package.jsonで、

  "dependencies": {
    "mongoose": "^4.13.15",
  },

と記載していた場合、^の意味は、"0ではない最も左側の数字は変更しない"という意味なので、package.jsonの記述に従うmongooseのバージョンは、メジャーバージョンの4系となります。semver | npm Documentation

npm outdatedコマンドを使うと、インストールされたパッケージでバージョンが古いものを確認できます。例えば、上記のpackage.jsonを利用していた場合は以下のように出力されます。

> npm outdated
Package          Current   Wanted  Latest  Location
mongoose         4.13.11  4.13.15   5.2.9  xxxxxx

WantedとLatestという列が表示されていますが、Wantedには、package.jsonの記述を満たすパッケージのうち、バージョン番号が最大のものが出力されます。Latestには、レジストリにlatestのタグがつけられたバージョンのバージョン番号が出力されます。outdated | npm Documentation

mongooseのバージョンをWanted列のバージョンに更新させるには、

npm update mongoose

を実行します。

npm update mongooseの実行後、もう一度、npm outdatedを見ると、

> npm outdated
Package          Current   Wanted  Latest  Location
mongoose         4.13.15  4.13.15   5.2.9  xxxxxx

と出力されて、CurrentとWantedのバージョン番号が一致していることが分かります。

これで、mongooseはpackage.jsonの記述をみたす最大のバージョン番号のものに更新されました。