package.jsonをまとめてアップデートする方法について

公開 : 2023.03.20
titleimage

当サイトはAstroJSで生成された静的サイトですが、npmパッケージをそれなりに使用しています。どのパッケージも開発が盛んで、2日に1回は最新バージョンが更新されています。今までは個々にアップデートの対応をしていたのですが、だんだんと大変になってきました。

そこで今回は、package.json 内のパッケージアップデートのおさらいとまとめてアップデートする方法についても解説していきたいと思います。

package.json 内のアップデートを確認する

package.json を表示する package.json
{
  "name": "myblog",
  "type": "module",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "dev": "astro dev",
    "start": "astro dev",
    "build": "astro build",
    "preview": "astro preview",
    "astro": "astro",
    "check": "astro check"
  },
  "dependencies": {
    "@astrojs/image": "^0.16.0",
    "@astrojs/rss": "^2.3.0",
    "@astrojs/sitemap": "^1.2.1",
    "@astrojs/svelte": "^2.1.0",
    "@astrojs/tailwind": "^3.1.0",
    "algoliasearch": "^4.15.0",
    "astro": "^2.1.3",
    "date-fns": "^2.29.3",
    "dotenv": "^16.0.3",
    "instantsearch.js": "^4.52.0",
    "remove-markdown": "^0.5.0",
    "sharp": "^0.31.3",
    "svelte": "^3.57.0",
    "tailwindcss": "^3.2.7"
  },
  "devDependencies": {
    "@astrojs/partytown": "^1.1.1"
  }
}

package.jsonとは以上の様なファイルですね。私のサイトだと15個のパッケージをインストールして使っています。それではアップデートの確認をしてみましょう。

アップデートを確認するには、npm outdated コマンドを使用します。

$ npm outdated

package.json 内よりも最新のバージョンが公開されている場合は以下のように教えてくれます。

Package            Current  Wanted  Latest  Location                        Depended by
@astrojs/image      0.16.0  0.16.1  0.16.1  node_modules/@astrojs/image        myblog
@astrojs/tailwind    3.1.0   3.1.1   3.1.1  node_modules/@astrojs/tailwind     myblog

今回だと、@astrojs/image が 0.16.0 → 0.16.1 に @astrojs/tailwind が 3.1.0 → 3.1.1 にアップデートできるようです。 それではアップデートの方法についても確認していきましょう。

1つずつアップデートを行う方法について

先程、アップデートの確認を行ったので次は実際にアップデートをしていきます。

アップデートを行うには、npm install ○○○@latest(○○○ はパッケージ名) コマンドを使用します。 例えば、@astrojs/image をアップデートしたい場合は以下のコマンドになります。

$ npm install @astrojs/image@latest

@astrojs/tailwind をアップデートしたい場合は以下のコマンドになります。

$ npm install @astrojs/tailwind@latest

パッケージ名の後ろに @latest をつけてインストールを行えばいいだけです。簡単ですね。ただこれだと、複数のパッケージをまとめてアップデートすることができません。 複数のパッケージを一括でアップデートする方法についても確認していきましょう。

複数のパッケージをまとめてアップデートする方法について

複数のパッケージをまとめてアップデートするために、npm-check-updates というライブラリを使用します。 まずは npm-check-updates をインストールします。

$ npm i -g npm-check-updates

無事にインストールができたら、アップデートを行ってみましょう。一括アップデートを行うには ncu -u コマンドを使用します。

$ ncu -u

package.json 内のパッケージが最新になったので、インストールを行いましょう。

npm install 

まとめ

今回のコマンドをまとめると以下のようになります。

  • npm outdated でアップデートの確認
  • npm install ○○○@latest で1つずつアップデート
  • ncu -u でまとめてアップデートし npm install でインストール

パッケージのアップデートはこまめにやりましょう〜