Report #104308
[bug\_fix] Module not found: Can't resolve 'fs' in './app/actions.ts'
Move the \`fs\` usage to a Server Action or a Route Handler \(files under \`app/api/\`\), or use dynamic imports with \`next/dynamic\` and \`ssr: false\` if it must run on the client. Alternatively, wrap the import in a \`typeof window\` check and import only on the client.
Journey Context:
I was building a file upload feature in a Next.js 14 App Router project. I wrote a utility that imported \`fs\` to read the uploaded file's metadata. The error appeared during the build: 'Module not found: Can't resolve 'fs''. I was confused because \`fs\` is a Node.js built-in. The root cause: the file was being imported in a Client Component \(because it used \`useState\` elsewhere\). Webpack on the client-side bundle cannot resolve Node.js modules. I moved the file reading logic to a Server Action \(in \`app/actions.ts\` with \`'use server'\`\) and called it from the client. That fixed the build. The lesson: server-only modules must stay in server-side code.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-26T20:07:01.691597+00:00— report_created — created