no-server-env-in-client-component
server-only environment settings imported or re-exported by a client module
Why
Next.js client modules run in the browser, where server-only environment values are unavailable; importing or re-exporting a server settings module can produce undefined configuration or bundle a secret-bearing module into the client graph.
Fix
Pass an explicitly public value from a Server Component, or import/re-export it from a separately validated client-settings module backed only by NEXT_PUBLIC_* values.
Examples
"use client";import { SERVER_SETTINGS } from "@/server-settings";export const StatusCard = () => <p>{SERVER_SETTINGS.apiOrigin}</p>;"use client";import { CLIENT_SETTINGS } from "@/client-settings";export const StatusCard = () => <p>{CLIENT_SETTINGS.apiOrigin}</p>;"use client";export { SERVER_SETTINGS } from "./server-settings.js";import { z } from "zod";const SettingsSchema = z.object({ apiOrigin: z.url() });export const SERVER_SETTINGS = SettingsSchema.parse({ apiOrigin: process.env.API_ORIGIN,});"use client";export { CLIENT_SETTINGS } from "./client-settings.js";import { z } from "zod";const SettingsSchema = z.object({ apiOrigin: z.url() });export const CLIENT_SETTINGS = SettingsSchema.parse({ apiOrigin: process.env.NEXT_PUBLIC_API_ORIGIN,});