はじめに
PHPの脆弱性で世界中が大騒ぎになっている裏側でNode.jsでも脆弱性が発見されてバージョンアップがされました。
私は本業がWeb制作でnpmやNode.jsを使用する機会はほぼ無いのですが、1つだけReactで開発したSPAの案件があります。
ビルドした静的ファイルを公開しているだけではありますが、脆弱性があると分かっていて放置するわけにもいかないですし、今後も脆弱性は出てくるので行なったことを備忘録として残します。
今回の内容は開発環境のViteで使用しているNode.jsのバージョンアップになります。本番環境のNode.jsのバージョンアップは含みません。
当記事で表記のバージョンは執筆時点のもののため、バージョンアップを行う際は最新の情報を確認し、必要に応じてバージョンを置き換えて対応しましょう。参考になるのはあくまで手順のみです。
アプリの構成と各種バージョン
現時点でのアプリの構成と各種ライブラリのバージョンです。
- React 19.2.3
- React Router 7.12.0
- image-map-resizer 1.0.10
- destyle.css 4.0.1
- Vite 6.3.5
- Node.js 24.13.0
- npm 11.7.0
公開して1年くらいが経過していますが、Vite以外は古いバージョンを使用していないなという感じでした。何でViteだけちょっと古いんだろう![]()
Node.jsのバージョンを上げる前の確認
現在(2026/10/30)公式でサポートされているのはNode.jsの22系、24系、26系になります。更新先のバージョンが発表されているのでこれに合わせてアップデートします。
| 使っている系列 | 更新先 |
|---|---|
| Node.js 26 | v26.12.1 |
| Node.js 24 | v24.22.1 |
| Node.js 22 | v22.23.4 |
私の場合は24系を使用しているため、v24.22.1へのアップデートが必要です。ただ、記事執筆時点のLTSが26.13.0で、アプリの規模も大きくないため26系にアップデートしちゃおうと思います。
念のため、Viteバージョン6とReact Routerバージョン7のNodeの互換性を確認します。
| 使用中のバージョン | 対応するNode.jsのバージョン |
|---|---|
| Vite 6.3.5 | Node.js 18、20、22以降 |
| React Router 7.12.0 | Node.js 20 |
どちらも問題なさそうです。
v26.13.0がnpm 11.20.0を同梱しているみたいなのでついでに現在の11.7.0から11.20.0へアップデートも行います。
やる事としてはNode.js 26.13.0へアップデートとnpm 11.20.0へのアップデートになります。
Node.jsとnpmのバージョンをアップデート
Node.jsとnpmのバージョン管理にVoltaを使用しているので、アプリのルートディレクトリに移動して以下のコマンドを実行します。
volta pin node@26.13.0
volta pin npm@11.20.0
これでNode.jsとnpmのバージョンアップが完了します。package.jsonを開いてバージョンが更新されているか確認します。
"volta": {
"node": "26.13.0",
"npm": "11.20.0"
}
バージョンが確認出来たらnpmのコマンドを実行して、エラーが出ないか確認しましょう。
npm run dev
npm run build
npm run preview
コマンドの実行が問題無く出来たら、開発環境で動作確認を行います。動作に問題無ければビルドしたファイルを本番環境に反映して動作確認をしましょう。
アプリの動作に問題が無ければアップデートは無事完了です!
おわりに
Node.jsのバージョンアップの手順についてまとめました。やるべき事としては以下になります。
- リリースされているNode.jsのバージョンとLTS状況を確認
- アプリで使用しているNode.js・npm・各種ライブラリのバージョンを確認
- アップデート候補のNode.jsと、使用しているライブラリの互換性・依存関係を確認
- アップデートするNode.js・npmのバージョンを決定
- Node.js・npmをアップデート
- 必要に応じて、互換性に問題があるライブラリや関連パッケージをアップデート
- 開発環境での動作確認(開発サーバーの起動・画面遷移など)
- ビルドの実行とビルド結果の確認
- 本番環境への反映と動作確認
脆弱性はこれからもきっと出続けるので、普段からアップデートを行って脆弱性が出てから慌てないようにしていきたいです。
参考
