![translation](https://cdn.durumis.com/common/trans.png)
Dies ist ein von KI übersetzter Beitrag.
Sprache auswählen
Von durumis AI zusammengefasster Text
- In Next.js wird .env zur Buildzeit konfiguriert, aber manchmal müssen Umgebungsvariablen nach dem Build (local, dev, qa, prod) angepasst werden.
- Windows-Benutzer können keine bestehenden Unix-basierten Skripte verwenden. Daher müssen Sie cross-env installieren, um ein Skript zu erstellen, das sowohl unter Windows als auch unter Unix funktioniert.
- Wir haben cross-env auf die Befehle start und dev angewendet, um Umgebungsvariablen zu setzen und das Skript zu vereinfachen, um die Lesbarkeit zu verbessern.
In Next.js wird .env während der Build-Zeit hartcodiert.
Manchmal gibt es jedoch viele Bedürfnisse, die Umgebungsvariablen nicht während der Build-Zeit, sondern beim Ausführen des erstellten Images einrichten möchten.
Dies liegt normalerweise daran, dass wir local, dev, qa und prod behandeln.
Wie können wir das erreichen?
Der größte Teil des Kontexts ist mit dem folgenden Artikel identisch.
Der obige Artikel lehnt Windows jedoch ab.
Dies zeigt, dass Unix-Syntax in die Skripte in package.json eingefügt wird.
Das bedeutet, dass saubere Windows-Benutzer, die kein schmutziges Unix verwenden, diese Skripte nicht verwenden können.
Daher müssen saubere und fürsorgliche Windows-Benutzer den Unix-Benutzern zuliebe ein Skript einfügen, das auf beiden Betriebssystemen einwandfrei funktioniert.
Die Lösung ist einfach.
Sie können ein Skript einfügen, das die gleiche Funktion wie diese Syntax erfüllt.
Installieren Sie cross-env mit dem oben genannten Befehl.
Wenn Sie den oben genannten Startbefehl wie folgt ändern, wird das Problem behoben.
Das Skript ist jedoch zu lang, um es zu lesen, und es muss auch dem dev-Befehl hinzugefügt werden.
{
"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"
Daher habe ich es wie oben zusammengefasst.