![translation](https://cdn.durumis.com/common/trans.png)
Dit is een door AI vertaalde post.
[Next.js] Runtime env injectie
- Taal van de tekst: Koreaans
- •
-
Referentieland: Alle landen
- •
- Informatietechnologie
Selecteer taal
Samengevat door durumis AI
- In Next.js wordt .env tijdens de buildtijd ingesteld, maar er zijn gevallen waarin je omgevingsvariabelen moet instellen na de build, afhankelijk van de omgeving (local, dev, qa, prod).
- Windows-gebruikers kunnen bestaande Unix-gebaseerde scripts niet gebruiken, dus ze moeten cross-env installeren om scripts te maken die in zowel Windows als Unix-omgevingen werken.
- Cross-env is toegepast op de start- en dev-commando's om omgevingsvariabelen in te stellen en de scripts te vereenvoudigen, wat de leesbaarheid verbetert.
In Next.js wordt .env tijdens de buildtijd hardcoded.
Maar er zijn vaak behoeften om een env in te stellen tijdens het uitvoeren van de build-image, niet tijdens de buildtijd.
Dit is meestal omdat we local, dev, qa, prod behandelen.
Hoe kunnen we dat dan doen?
De meeste context is vergelijkbaar met het onderstaande artikel.
Het bovenstaande artikel wijst Windows echter af.
We kunnen zien dat het Unix-grammatica in de scripts van package.json is ingevoegd.
Dit betekent dat een eerlijke, schone en attente Windows-gebruiker die geen vuile Unix gebruikt, het bovenstaande script niet kan gebruiken.
Daarom moet een schone en attente Windows-gebruiker een script toevoegen dat op beide besturingssystemen werkt om de Unix-gebruiker te helpen.
De oplossing is eenvoudig.
We kunnen een script invoegen dat hetzelfde doet als deze grammatica.
Installeer cross-env met de bovenstaande opdracht.
En los het op door de start-opdracht die eerder werd genoemd, te wijzigen in de volgende.
Maar het script is te lang en moeilijk te lezen, en we moeten het ook aan de dev-opdracht toevoegen.
{
"dev": "npm run _env:-local && next dev",
"dev:dev": "npm run _env:dev && next dev",
"start": "npm run _env:-local && next start",
"_env:-local": "cross-env-shell node ./utils/cli.js next-env -e $APP_ENV",
"_env:dev": "node ./utils/cli.js next-env -e dev"
Daarom heb ik het bovenstaande op deze manier georganiseerd.