プロジェクト内の npm パッケージの更新手順

● 1. npm outdated で パッケージが最新かどうかを確認する。

npm outdated

● 2. npm update で メジャーバージョンをまたがない update を行う

npm update は
セマンティック バージョニングに従った package.json で指定されたバージョン範囲内で最新のバージョンを探します。
たとえば、^1.0.0 と指定されている場合、1.x.x の最新バージョンにアップデートしますが、2.0.0 にはアップデートしません。

また メジャーバージョンが変わるような大きな変更(破壊的変更)は行いません。依存関係を最新の状態に保ちつつ、プロジェクトの互換性を保つために使用されます。

● 3. npm audit で パッケージの脆弱性の検査を行う

npm audit

脆弱性のあるパッケージ名だけを表示するには、次のコマンドを実行します(jqコマンドが必要です。)

npm audit --json | jq -r 'if .advisories then .advisories | to_entries[] | .value.module_name else .vulnerabilities | keys[] end' | sort -u

実際に修正を行う場合は、次のコマンドを実行する

npm audit fix

これでも 修正が完了しない場合は、メジャーバージョンをまたいだアップデートを行う必要があります。

npm audit fix の 結果、出力に、例えば以下のような出力があります。

Severity: high
Inefficient Regular Expression Complexity in nth-check - https://github.com/advisories/GHSA-rp65-9cf3-cjxr
fix available via `npm audit fix --force`
Will install @storybook/preset-create-react-app@4.1.0, which is a breaking change

@storybook/preset-create-react-app@4.1.0 という バージョンにする必要があるよという意味です。

ncu をインストールしてアップデートを自動で行う

npm install -g npm-check-updates
ncu --version

ncuで一括バージョンアップするとどのバージョンになるのか確認する

ncu

ncuで一括バージョンアップをpackages.jsonに書き込んでupdateする

 ncu -u
npm i
No.2464
08/16 13:40

edit