発生したエラー
Next.jsをnpx create-next-app@latest
でインストールして起動しようとしたら、エラー"SyntaxError: Unexpected token '??='"が発生した。
$ npm run start
> my-app@0.1.0 start ...
> next start
...
SyntaxError: Unexpected token '??='
at wrapSafe (internal/modules/cjs/loader.js:1001:16)
at Module._compile (internal/modules/cjs/loader.js:1049:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
原因
利用しているnode.jsのバージョンが古すぎた。??=
のシンタックスはNode 15以降でのみ利用できる。
$ node -v
v14.19.1
対応
問題が起きた環境はnodebrewでnodeのバージョンを管理していたので、nodebrewで最新のnode.jsを利用できるようにした
# 現在のバージョン
$ nodebrew ls
v14.19.1
current: v14.19.1
# 利用できるバージョンの確認
$ nodebrew ls-remote
...
v20.0.0 v20.1.0 v20.2.0 v20.3.0 v20.3.1 v20.4.0 v20.5.0 v20.5.1
# 最新バージョンをインストール
$ nodebrew install-binary 20.5.1
# インストールできたか確認
$ nodebrew ls
v14.19.1
v20.5.0
current: v14.19.1
# ver20.xを利用する
$ nodebrew use v20.5.0
use v20.5.0
# 再度確認
$ nodebrew ls
v14.19.1
v20.5.0
current: v20.5.0
こちらもおススメ