Webpacks DefinePlugin
wird nicht durch Umgebungsvariablen geleitet. Ich verwende Webpack v2.2.1
Mein Webpack plugins
Block ist unten:
server.js:
%Vor% .babelrc
Konfiguration:
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. :)
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
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]
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.