webpack.config.js can exportiert auch eine Funktion von env, die ein conf-Objekt zurückgeben kann. Sie können daher eine Webpack-Konfiguration wie folgt haben:
und rufen Sie dann webpack von der Befehlszeile (oder package.json) wie folgt auf:
webpack --env=production
Das funktioniert nicht mit Webpack 1 richtig? weil es mir Fehler gibt, dass die Konfigurationsdatei kein Objekt zurückgibt
– Matias Fernández Martinez
10. September 2017 um 21:57 Uhr
@MatiasFernandezMartinez etwas spät, aber ja, das Exportieren einer Funktion wurde entweder in Webpack 3 oder 4 hinzugefügt
– Bauhaus
28. Januar 2019 um 17:53 Uhr
Ob dies der Fall ist, geht aus Ihrer Antwort nicht hervor env Argument magisch oder wir können beliebige Parameter übergeben, wie z --paramName1=value --paramName2=value
– Michail Bäcker
9. Januar 2020 um 20:27 Uhr
@MikhailBatcer Gute Frage. Es scheint, dass es –env(.XXX) sein muss. Sehen Umgebungsvariablen. Danke an Orkun Tuzel
– Mojtaba
2. Oktober 2020 um 7:50 Uhr
Es sollte sein: entry: !!env.production ? "./app.js": "app-dev.js"
– TechWeisheit
11. März um 1:49
Adrian
Sie können benutzerdefinierte Parameter bereitstellen, indem Sie Umgebungsvariablen in der Befehlszeile übergeben. Die Syntax dafür hat sich zwischen Version 4 und 5 von Webpack geändert. Für dieses Beispiel würden Sie Folgendes aufrufen:
Ob dies der Fall ist, geht aus Ihrer Antwort nicht hervor env Argument magisch oder wir können beliebige Parameter übergeben, wie z --paramName1=value --paramName2=value
– Michail Bäcker
9. Januar 2020 um 20:27 Uhr
DAS FUNKTIONIERT NICHT!! webpack –env.entry=’./app.js’ –env.output=’bundle.js’ RICHTIG IST webpack –env=mode=production –env=branch=develop
– madruga
12. Februar um 18:23 Uhr
@madruga Dies funktionierte für Webpack 4, das die neueste Version war, als diese Antwort geschrieben wurde. Die Syntax wurde jetzt für Webpack 5 geändert. Mehr Infos hier: webpack.js.org/guides/environment-variables. Ich habe jetzt meine Antwort aktualisiert, um dies widerzuspiegeln.
– Adrian
15. Februar um 16:10 Uhr
Pastete
Sie können auch mehrere Schlüssel-Wert-Paare an Ihre Konfiguration übergeben --env=key=value:
Sie dürfen verwenden argv paketieren und die Variablen setzen. Sie müssen es vorher tun module.export.
Danke, das werde ich auf jeden Fall versuchen. Aber gibt es keinen einfacheren Weg, ohne dass eine zusätzliche Paketreferenz erforderlich ist? Schließlich ist webpack.config.js nur Javascript-Code.
– Oblomow
22. Mai 2017 um 12:55 Uhr
Sie können –env=test beispielsweise über die Befehlszeile übergeben und dann eine Funktion von env exportieren, die ein statt direkt ein Objekt zurückgibt webpack.js.org/configuration/configuration-types/…
Danke @Axnyff: Der Env-Trick scheint für mich zu funktionieren. Wenn Sie es zu einer vollständigen Antwort machen, kann ich es akzeptieren.
– Oblomow
22. Mai 2017 um 13:14 Uhr
Ich habe es gerade getan, ist das noch ok für dich?
– Axnyff
22. Mai 2017 um 13:24 Uhr
Patrice Thimothee
Der einfachste Weg, meiner Meinung nach, Argumente zu übergeben, ist die Verwendung von Node. Webpack ist derjenige, der die Argumente erhält, Sie können Speichern Sie Ihre Befehlszeilenargumente in einer dedizierten Umgebungsvariablen (die nur innerhalb der Session existiert):
Dann in Ihrer main.js (überall dort, wo Sie sie analysieren möchten), you Rufen Sie Ihre Befehlszeilenargumente aus Ihrer dedizierten Umgebungsvariable ab.
Da Sie alle Argumente abrufen, die Sie an Webpack übergeben haben, können Sie alle Knotenmodule (wie zum Beispiel yargs) problemlos verwenden, um sie zu analysieren (oder natürlich manuell).
So können Sie Dinge wie diese ohne Probleme tun:
webpack ... --opt1 the_value --custom1 something
yarn run dev --opt1 the_value --custom1 something
usw.
Danke, das werde ich auf jeden Fall versuchen. Aber gibt es keinen einfacheren Weg, ohne dass eine zusätzliche Paketreferenz erforderlich ist? Schließlich ist webpack.config.js nur Javascript-Code.
– Oblomow
22. Mai 2017 um 12:55 Uhr
Sie können –env=test beispielsweise über die Befehlszeile übergeben und dann eine Funktion von env exportieren, die ein statt direkt ein Objekt zurückgibt webpack.js.org/configuration/configuration-types/…
Hast du es mal mit versucht Umgebungsvariablen ?
– Orkun Tuzel
22. Mai 2017 um 12:58 Uhr