Ich habe eine React App mit Webpack Version 3.6.0, und ich habe Probleme mit DefinePlugin
, um globale Variablen zu setzen - Werte, die gesetzt sind 'normal', wie in der documentation sind nicht in der gesamten App verfügbar ... jedoch, wenn ich Werte in ein Objekt mit dem Namen process.env
umschließen, sind die Variablen in der gesamten App verfügbar, wenn auch mit dem Präfix process.env
.Webpack - kann keine globalen Variablen setzen, außer als 'process.env'
Zum Beispiel, hier ist das, was würde ich meine DefinePlugin
mag so aussehen:
plugins: [
new Webpack.DefinePlugin({
"NODE_ENV": process.env.NODE_ENV ? JSON.stringify(process.env.NODE_ENV) : JSON.stringify("development"),
"SIGNUP_PATH": JSON.stringify("signup")
})
]
das funktioniert nicht - versuchen zu console.log(NODE_ENV)
oder console.log(SIGNUP_PATH)
nichts tut, die Variablen undefined
. Überraschenderweise
(oder vielleicht auch nicht, vielleicht gibt es nur etwas, ich weiß nicht), das funktioniert:
plugins: [
new Webpack.DefinePlugin({
"process.env": {
"NODE_ENV": process.env.NODE_ENV ? JSON.stringify(process.env.NODE_ENV) : JSON.stringify("development"),
"SIGNUP_PATH": JSON.stringify("signup")
}
})
]
und ich kann die Variablen zugreifen mit console.log(process.env.NODE_ENV)
und console.log(process.env.SIGNUP_PATH)
usw.
Warum ist es, dass ich alles in ein Objekt mit dem Namen process.env
setzen muss, um darauf zuzugreifen, wie ich global wäre? Mache ich hier etwas falsch oder verstehe ich etwas nicht?
Getestet habe ich, dass - das gleiche Problem :( – skwidbreth
das sieht richtig zu mir, ich denke, das Problem woanders in Ihrem Code ist, werden Sie eine dotenv und eine Verwendung.. env-Datei für Ihre Umgebungsvariablen? –