Module not found: Can't resolve 'fs'

En klientkomponent försöker importera Node.js-modulen `fs`, som inte finns i webbläsaren.

Förklaring

fs är en inbyggd Node.js-modul för filsystemoperationer. Den finns inte i webbläsaren och kan inte bundlas in i klientkod. Om en fil som importerar fs hamnar i ett klientbundle visas det här felet.

I Next.js kan server-komponenter och API-routes använda fs eftersom de körs i Node.js. Problemet uppstår när kod som använder fs antingen ligger i en klientkomponent direkt, eller importeras av en klientkomponent indirekt.

Andra Node.js-moduler som path, crypto, os, och child_process ger samma fel av samma skäl.

Vanliga orsaker

En 'use client'-komponent importerar fs direkt. En delad util-modul som använder fs importeras av en klientkomponent.

Lösning

Flytta fs-anrop till server-komponenter, Server Actions, eller Route Handlers:

// app/api/content/route.js — körs på servern
import fs from 'fs/promises';

export async function GET() {
  const content = await fs.readFile('data.json', 'utf-8');
  return Response.json(JSON.parse(content));
}

Klientkomponenten hämtar sedan data via ett API-anrop i stället för att läsa från filsystemet direkt.