⚡
Cloudflare PagesにNext.jsをデプロイするときにハマった話
はじめに
Next.jsで作成した静的サイトをCloudflare Pagesにデプロイしようとした時に
SyntaxError: Unexpected token '?'
というエラーにハマった話
下記エラー詳細
22:59:55.790 Executing user command: next build && next export
22:59:55.885 /opt/buildhome/repo/node_modules/next/dist/build/index.js:347
22:59:55.885 ...pageKeys.app ?? [],
22:59:55.885 ^
22:59:55.885
22:59:55.885 SyntaxError: Unexpected token '?'
22:59:55.886 at wrapSafe (internal/modules/cjs/loader.js:1054:16)
22:59:55.886 at Module._compile (internal/modules/cjs/loader.js:1102:27)
22:59:55.886 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
22:59:55.886 at Module.load (internal/modules/cjs/loader.js:986:32)
22:59:55.886 at Function.Module._load (internal/modules/cjs/loader.js:879:14)
22:59:55.886 at Module.require (internal/modules/cjs/loader.js:1026:19)
22:59:55.886 at require (internal/modules/cjs/helpers.js:72:18)
22:59:55.886 at Object.<anonymous> (/opt/buildhome/repo/node_modules/next/dist/cli/next-build.js:10:37)
22:59:55.887 at Module._compile (internal/modules/cjs/loader.js:1138:30)
22:59:55.887 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
22:59:55.893 Failed: build command exited with code: 1
22:59:56.847 Failed: an internal error occurred
原因
Cloudflare Pagesのデフォルトで使われている node
のバージョンが v12.18.0
だったため
冷静に確認すると、下記のログが出力されていました。
Now using node v12.18.0 (npm v6.14.4)
解決策
ローカルのルートディレクトリに .node-version
というファイルを作成し、
v17
以下の任意のバージョンを指定する
.node-version
// 例
v16.7.0
Language support and tools
(中略)
Node.js: Any version up to 17.x
参考
Discussion
まさにクリティカルな情報でした。感謝します。