僕が提供しているNext.jsのコースの中では、はじめのほうで create-next-app
でセットアップした後、 yarn dev
でサーバーを立ち上げて表示を確認しています。
すると、下記のようなエラーが発生した方がいました。
$ yarn dev
...
ready - started server on 0.0.0.0:3000, url: <http://localhost:3000>
info - SWC minify release candidate enabled. <https://nextjs.link/swcmin>
error - ./node_modules/next/dist/client/dev/amp-dev.js
Module not found: Can't resolve 'C:\\Users\\xxx\\udemy_nextjsudemy_nextjs\\node_modules\\next\\dist\\compiled\\regenerator-runtime\\runtime.js' in 'C:\\Users\\xxx\\udemy-next-propject\\node_modules\\next\\dist\\client\\dev'
今回の記事はこのエラーと解決方法についてです。
前提
- PC: windows
- プロジェクトフォルダ名: udemy_nextjs
- create-next-app でセットアップはOK
- nextのバージョン: 12.2.2
調べると ud
が原因
質問をいただいた方の場合、udemyコースだったので、プロジェクトのフォルダ名を udemy_nextjs
にされていました。
基本的にフォルダ名が問題になることはほとんどないと思いますが、同じエラーに関してissueが上がっていました。
ポイントになるのはフォルダ名の ud
の部分だということです。windowsではパスの連結にはバックスラッシュ \
を使います。 ud
という文字が \
に続く形で記載されていると問題が起こるようです。
解決策① – nextバージョンのダウングレード
Next.jsのバージョンによって発生する問題のようなので、バージョンを下げると直るかもしれません。
12.0.4未満にすると直ったという方がいるので、下記を実行してみるといいかもしれません。
yern upgrade next@12.0.3
解決策② – フォルダ名の変更
Module not found: Can't resolve
に続いて記載されているパスの中に \\ud...
のような部分がある場合に発生しているので、そのようなフォルダ名を変更すると直るかもしれません。
今回の受講生の方の場合は、フォルダ名を変更すると無事解決できました。
参考
https://www.reddit.com/r/nextjs/comments/u521hp/nextjs_error_module_not_found/