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の記述をみたす最大のバージョン番号のものに更新されました。