【Node.js】開発サーバー起動コマンド実行時のエラー「ReferenceError: Request is not defined」の原因・対処方法

事象

開発環境で開発サーバーを起動するためにyarn devを実行したところ、以下のエラーが表示されました。

% yarn dev
yarn run v1.22.18
$ next dev -p 3050
/path/to/app/node_modules/next/dist/server/web/spec-extension/request.js:28
class NextRequest extends Request {
                          ^

ReferenceError: Request is not defined
    at Object.<anonymous> (/path/to/app/node_modules/next/dist/server/web/spec-extension/request.js:28:27)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at Module.mod.require (/path/to/app/node_modules/next/dist/server/require-hook.js:64:28)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (/path/to/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js:37:18)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)

✨  Done in 0.44s.

原因

What version of Node.js have you got on your Vercel deployment? If it is 16.x, or less, then you should set it to 18.x, assuming that none of the packages you are ussing, require lower Node.js versions.

Basically, you should have the same Node.js version, locally and on Vercel.

Figuring out the Node version on Vercel: https://vercel.com/changelog/node-js-version-now-customizable-in-the-project-settings

対処

現在使用しているNode.jsのバージョンを確認します。

% node -v
v16.20.2

最新のLTSバージョンをインストールします。

% n lts
  installing : node-v20.15.0
       mkdir : /usr/local/n/versions/node/20.15.0
       fetch : https://nodejs.org/dist/v20.15.0/node-v20.15.0-darwin-arm64.tar.xz
     copying : node/20.15.0
   installed : v20.15.0 (with npm 10.7.0)
% n list
node/16.20.2
node/20.15.0

インストールしたLTSバージョンに変更します。

% n

    node/16.20.2
  ο node/20.15.0

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
% node -v
v20.15.0

yarn devを実行してエラーが表示されなくなったことを確認しました。

関連記事

関連記事はありません。