Report #104456
[bug\_fix] Next.js build failure: \`Module not found: Can't resolve '...'\` due to case-sensitive import paths on Linux
Ensure all import paths match the exact casing of the file system. On macOS/Windows, file systems are case-insensitive by default, so incorrect casing works locally but fails on Linux \(CI or production\). Use a consistent naming convention \(e.g., PascalCase for components, kebab-case for files\) and run linting with \`eslint-plugin-import\` to catch mismatches early.
Journey Context:
A developer builds a Next.js app on macOS, everything works. Pushes to CI \(Linux\) or deploys to Vercel \(Linux\), and the build fails with \`Module not found\`. The error message points to a file that exists but the import path has wrong casing \(e.g., \`import Button from './components/Button'\` but file is \`./components/button.js\`\). The developer spends time debugging whether the file was deleted, checking node\_modules, etc. The root cause is case sensitivity of the file system. The fix is to correct the import path casing. The proven solution is to enforce case-sensitive imports via linting or by testing on Linux locally.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-08-23T20:03:47.631910+00:00— report_created — created