Webpack DefinePlugin übergibt keine Umgebungsvariablen an den Knotenserver

9

Webpacks DefinePlugin wird nicht durch Umgebungsvariablen geleitet. Ich verwende Webpack v2.2.1

Mein Webpack plugins Block ist unten:

%Vor%

server.js:

%Vor%

.babelrc Konfiguration:

%Vor%

Ich habe die Babel-Presets umgestellt, Webpack auf 2.0.0 zurückgesetzt und sehe wirklich nicht, was dazu führen könnte, dass diese Variablen nicht kopiert werden. Wenn ich zusätzliche Informationen oder Code liefern muss, lmk. :)

    
Brady 04.02.2017, 00:37
quelle

1 Antwort

1

Ich hoffe, das ist immer noch hilfreich für jemanden da draußen.

Webpack erstellt statische Bundle-Dateien, so dass Umgebungsvariablen verfügbar sein müssen, wenn das Webpack es tut.

Anhand der .babelrc-Datei kann ich sehen, dass es sich um eine mit webpack gebündelte react-App handelt. Sie möchten also dotenv als Abhängigkeit npm install --save dotenv

installieren

In Ihrer Datei webpack.config.js müssen Sie Folgendes tun:

%Vor%

Was zur Zeit des Pakets passiert, ist, dass die Umgebungsvariablen global im process.env Objekt gespeichert werden, das im neu definierten Webpack-Plugin erstellt wurde. und das macht unsere Variablen über process.env.[VARIABLE_NAME]

überall in unserer Codebasis zugänglich

P.S: Stellen Sie auf Cloud-Servern wie z. B. heroku sicher, dass Sie alle gewünschten Umgebungsvariablen festlegen, bevor Sie den Code bereitstellen. Wenn Änderungen nach der Codebereitstellung vorgenommen werden, müssen Sie die Bereitstellung für Webpack erneut durchführen, um die gespeicherten Variablen zu aktualisieren. Diese Methode funktioniert sowohl mit reaktiven als auch eckigen. Ich glaube, es sollte mit allen Webpack-Builds funktionieren. Bearbeiten: Außerdem müssen wir JSON.stringify() für die Umgebungsvariable (n) eingeben, die wir in das Webpack-Plugin übergeben.

    
saheedt 07.11.2017 06:31
quelle

Tags und Links