9
2

Vercelにデプロイ時のビルドエラー[ModuleNotFoundError: Module not found: Error: Can't resolve 'xxx' in '/vercel/path0/components']

Last updated at Posted at 2022-11-13

内容

Next.jsプロジェクトをVercelにデプロイ時のビルドで、ModuleNotFoundエラーが発生したため、解決した手段を記述。
Next.jsプロジェクトをVercelにデプロイする手順の記事はこちらにまとめています。

目次

エラー内容

Vercelデプロイ時のエラー文

ModuleNotFoundError: Module not found: Error: Can't resolve 'xxx' in '/vercel/path0/components'

どうやらモジュールが見つからないらしいが、コードを見返してもファイルを参照する相対パスなどに誤りが見受けられない。

エラー原因

Vercelの公式サイトによると、

(概要のみ)
Vercelのデプロイメントでは大文字と小文字を区別するファイルシステムを使用している。
ローカルマシンでファイル名の大文字小文字を変更すると、Git はそれぞれの静的import文の変更だけを拾ってしまう可能性がある。

つまり、ローカルでファイル名を component.tsx ⇒ Component.tsxなどに変更すると、Gitの設定によっては(というか多分デフォルトで)ファイル名の大文字小文字の変更が反映されない。
したがってVercelにデプロイするGitHubのリモートリポジトリでは、誤ったファイル名のままとなっているため、生じたエラーと考えられる。

解決手順

結論

リモートリポジトリのpages/, components/ その他可能性のあるディレクトリを削除し、再push。
私の場合は最終的にはこの方法で解決に至りました。

手順1:プロジェクト全体をバックアップ

ファイル名の大文字小文字を変更した可能性のあるディレクトリをリモートリポジトリから削除するため、復元するためにプロジェクト全体のコピーを作成しバックアップ。

cp -r project/ project-back/

手順2:gitから削除し、push

git rm -r pages/
git rm -r components/
git push

これでローカルとリモートリポジトリから削除

手順3:バックアップファイルから削除したディレクトリをコピーし復元、再push

cp -r project-back/pages/ project/pages/
cp -r project-back/components/ project/components/
git add .
git commit -m "message"
git push

これで再push時に自動デプロイが走り、ビルドを無事passすることができました。

以上

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2