Omgevingsvariabelen in Next.js uitgelegd

Omgevingsvariabelen in Next.js

Omgevingsvariabelen in Next.js: .env, NEXT_PUBLIC_ | We.Inc

Hoe Next.js .env-bestanden laadt en in welke volgorde, wat NEXT_PUBLIC_ echt doet tijdens de build en hoe u waarden runtime leest. Plak uw .env om te zien wat de browser bereikt.

Next.js leest .env-bestanden uit de projectroot in process.env. Variabelen zijn standaard alleen voor de server. Zet NEXT_PUBLIC_ voor een naam en Next.js kopieert de waarde tijdens next build naar de browser-JavaScript, waardoor hij openbaar is en vastligt tot u opnieuw bouwt. Zet nooit een geheim achter dat prefix.

Laadvolgorde: het eerste bestand dat een variabele definieert wint

Plak hieronder de inhoud van een .env-bestand. De checker deelt elke variabele in als alleen server of naar de browser gestuurd, en markeert openbare namen die op geheimen lijken. Hij draait volledig op deze pagina; niets van wat u plakt wordt geüpload.

Veelgestelde vragen

Waarom is mijn omgevingsvariabele undefined in de browser?

Zonder het prefix NEXT_PUBLIC_ bestaat een variabele alleen op de server, en vervangt Next.js hem in clientcode door een lege string. Voeg het prefix alleen toe als de waarde veilig openbaar mag, en bouw daarna opnieuw.

Ik heb een NEXT_PUBLIC_-waarde bij mijn host gewijzigd en er gebeurde niets. Waarom?

Openbare waarden worden ingevoegd wanneer next build draait. Een gedeployde bundle houdt de oude waarde tot u opnieuw bouwt met de nieuwe.

Werkt .env.local in tests?

Nee. Als NODE_ENV test is, slaat Next.js .env.local over zodat elke testrun dezelfde waarden krijgt. Zet standaardwaarden voor tests in .env.test en persoonlijke overrides in .env.test.local.

Kan de ene variabele naar een andere verwijzen?

Ja. Schrijf $OTHER_NAME in een waarde en Next.js breidt die uit. Heeft de waarde een letterlijk dollarteken nodig, escape het dan als \$.

Waarop staat NODE_ENV?

Als u het niet zet, gebruikt next dev development en gebruiken andere commando's production. De toegestane waarden zijn production, development en test.

Wat NEXT_PUBLIC_ echt doet

Waarden runtime lezen

Bescherm tegen lekken

Variabelen lezen in code

Waarde alleen voor de server in een Route Handler

DB_URL heeft geen prefix, dus bestaat alleen op de server. Route Handlers en Server Components kunnen hem vrij lezen.

Openbare waarde in een Client Component

De volledige letterlijke naam is vereist. Tijdens de build vervangt Next.js hem door de waarde, dus de browser ziet een gewone string.

Een waarde per request lezen

Door connection() te awaiten rendert de pagina dynamisch, zodat de waarde van de draaiende server komt in plaats van uit de build.

loadEnvConfig past dezelfde laadvolgorde toe, waardoor scripts en testsetups gelijk blijven lopen met de app.

.env-checker

Plak .env-regels

Waar elke variabele kan worden gelezen

Variabele

Beschikbaar in

Opmerking

Alleen server

Server en browser (ingevoegd bij de build)

Geen variabeleregel

De naam lijkt op een geheim. Alles met NEXT_PUBLIC_ is zichtbaar voor elke bezoeker.

Verwijst naar {v}, die Next.js uitbreidt.

NODE_ENV accepteert alleen production, development of test.

Nog geen variabelen gevonden.

{n} alleen server, {v} naar de browser gestuurd

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap