以下の内容はhttps://uga-box.hatenablog.com/entry/2024/11/18/000000より取得しました。


【Node.js】プロジェクトのNode.jsのバージョンを20系にする

Nodeのバージョンを20系で固定する方法を調べた

やり方は簡単で、package.jsonの中にenginesの定義すれば良い

例えば、Node.jsの20系にする場合は以下

{
  "name": "my-app",
  "version": "0.0.0",
  "engines": {
    "node": ">=20.0.0 < 21.0.0"
  },
  ...
}

もし、20系でないバージョンで、npm run devなどのスクリプトを実行した場合、以下のエラーが発生する

$ pn dev              
 ERR_PNPM_UNSUPPORTED_ENGINE  Unsupported environment (bad pnpm and/or Node.js version)

Your Node version is incompatible with "/Users/uga/my-project".

Expected version: >=20.0.0 < 21.0.0
Got: v22.2.0

This is happening because the package's manifest has an engines.node field specified.
To fix this issue, install the required Node version.

これで、バージョンを固定することができた

GitHub Actionsのワークフロー

package.jsonのenginesでバージョンを固定した場合、GitHub Actionsのワークフローで失敗する可能性がある

それは、GitHub Actionsの実行時ランタイムで使われる Node.js バージョンは18系であるためである

なので、ここでもバージョンを20系にする必要がある

やり方は workflowのyamlファイルのsetup-nodeで以下のように指定すればよい

      - uses: actions/setup-node@v4
        width:
          node-version: ">=20.0.0 < 21.0.0"
          cache: npm

Vercel

Vercelを使っている場合は、Vercelの設定も忘れずに行う

Settings>General>Node.js Versionのプルダウンでバージョンを選べるようになっていて、簡単に設定できる

詳細は以下

vercel.com




以上の内容はhttps://uga-box.hatenablog.com/entry/2024/11/18/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14