Next.js14のCSRでMSWを使ってみました。
結論としては Chrome では使えたのですが、Safari では使えませんでした。
APIレスポンスをモックできるMSW(Mock Service Worker)ですが、Next.jsとは相性がよくないことで知られています。
とか
とか。。。
いまは Next.js14 がリリースされていますし用途もCSRだし、ということでMSWを使ってみましたが、なかなか動かず小一時間溶かしました。
「Mocking enabled」とコンソールに出力されるので、ServiceWorker はちゃんと動いているはずなのですが、いざAPIを叩いてみると404エラーになってしまいます。
パスも合ってるので、モックできず存在しないAPIを呼んでいるから404なのは明らかなのですが・・・。
今日はもう諦めるか・・・と、片付け始めていたら「ん?ブラウザか?」と思い、SafariからChromeに変えて試してみたらすんなり成功しました。
私の端末(MacBook Air M1)はしばらくOSアップデートしていないので、まだSafariは15なのですが、アップデートしたらうまくいくのかな。。
ともかく、これではこの先心もとないのでMSWは使わないでおこうと思います。
Reactレシピシリーズで使いたかったのですが、入門系コンテンツなのに見てみたら動かない、というようでは話になりませんからね。。。
そのうちOS新しい方の端末で試してみたいと思います。
コメント