1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【段階的】npmパッケージのバージョンアップ完全ガイド

1
Posted at

はじめに

npmパッケージのバージョンアップは、互換性の問題やバグが起きやすいポイント。
安易に一気に全部上げるのではなく、段階的に・細かくチェックしながら進めるのがおすすめです。

本記事では、

  • 従来のコマンドベースの手動アップデート方法
  • npm-check-updates(ncu)ライブラリを使った効率的な方法

の2パターンをご紹介し、ブランチ管理も含めた安全な作業フローを解説します。

前提知識

Semantic Versioning

バージョンは通常 MAJOR.MINOR.PATCH の3つの数字で構成されます。

  • MAJOR: 後方互換性のない大きな変更があったときに上げる
  • MINOR: 後方互換性のある新機能追加があったときに上げる
  • PATCH: バグ修正などの小さな変更があったときに上げる

例)1.4.2 → メジャー1、マイナー4、パッチ2

バージョン指定の記号 ^ と ~

^1.2.3 → マイナーアップデートまで許容
(例:1.3.0や1.4.5にはアップデートされるが、2.0.0は不可)

~1.2.3 → パッチアップデートまで許容
(例:1.2.4や1.2.9にはアップデートされるが、1.3.0は不可)

これらはpackage.jsonの依存関係でよく使われ、アップデートの範囲を指定します。

準備:新しいブランチを切る

git checkout -b <branch-name>

メインブランチに直接変更を加えず、問題が起きた場合にすぐに切り戻せるよう、必ず別ブランチで作業しましょう。

手動でバージョンアップする方法

1. 現状のアップデート可能なパッケージを確認

npm outdated

出力結果:

スクリーンショット 2025-08-08 16.29.20.png

@eslint/jsは現在v9.17.0ですが、v9.32.0が最新版なのでマイナー、
@hookform/resolversは現在v3.10.0ですが、v5.2.1が最新版なのでメージャー、
autoprefixerは現在v10.4.20ですが、v10.4.21が最新版なのでパッチの
アップデートが必要そうですね。

2. minorとpatchバージョンをアップデート

npm update

npm update は、package.jsonに書かれたバージョン指定の範囲内(^や~に基づく)で最新版に更新してくれます。マイナー・パッチアップデートは通常後方互換性が保たれているので、一気に上げてしまっても壊れにくいです。

アップデート後は忘れずにコミットをしましょう。

git add package.json package-lock.json
git commit -m "Update minor and patch dependencies"

3. majorアップデートは慎重に実施

メジャーアップデートは後方互換性が壊れる可能性があるため、慎重に行う必要があります。パッケージを一つずつ個別にアップデートしていきましょう。

npm install <package>@latest

アップデート後にやるべきこと:

  • 公式ドキュメントやchangelog、migration guideを読み、破壊的変更の内容を確認
  • 変更点を理解した上で必要であればコードを編集
  • テストを実施し問題なく通るか検証

無事に終わったらこちらもコミットを忘れずに。

git add package.json package-lock.json
git commit -m "Major update for <package>"

npm-check-updates(ncu)を使ったバージョンアップ方法

導入方法

npm install -g npm-check-updates

patchバージョンアップデート

ncu -t patch
ncu -u -t patch
npm install
git add package.json package-lock.json
git commit -m "Update patch dependencies"

解説:

  • ncu -t patchでパッチアップデートできる対象を確認
  • ncu -u -t patchでパッチアップデートを実行し、package.jsonのバージョン指定を更新
  • npm installで実際に依存パッケージをインストール(更新)
  • 変更された package.json と package-lock.json をステージしてコミット

minorバージョンアップデート

ncu -u -t minor
npm install
git add package.json package-lock.json
git commit -m "Update minor dependencies"
  • ncu -t minorでマイナーアップデートできる対象を確認
  • ncu -u -t minorでマイナーアップデートを実行し、package.jsonのバージョン指定を更新
  • npm installで実際に依存パッケージをインストール(更新)
  • 変更された package.json と package-lock.json をステージしてコミット

3. majorバージョンアップデート

ncu
npm install <package>@latest
git add package.json package-lock.json
git commit -m "Major update for <package>"
  • ncuでメジャーアップデートできる対象を確認
  • npm install <package>@latestで個別にメジャーアップデート
  • (破壊的内容の確認、コード修正、テスト検証)
  • 変更された package.json と package-lock.json をステージしてコミット

まとめ

個人的にはncuを使ったやり方の方が簡単だし、patchやminorアップデートも段階的に実施できるのでそちらをお勧めします。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?