2015-10-24 6 views
6

ich diese Ausgangskonfiguration in meiner webpack.config Datei haben:bundle.js-Datei ausgegeben und webpack-dev-Server

config = { 
      ... 
      output: { 
       path: path.resolve(__dirname, 'dist'), 
       filename: 'bundle.js', 
       publicPath: 'http://localhost:8090/' 
      }, 
... } 

Die bundle.js ist nicht auf den Pfad geschrieben in path angegeben; Es ist nur über den Webserver verfügbar, während ich beide möchte.

Was sollte ich ändern, um sowohl die Datei als auch den Webserver zu haben?

Antwort

13

Wenn Sie webpack-dev-server ausführen, bündeln und rekonstruieren Sie das Paket webpack nicht, es wird nur aus dem Speicher bereitgestellt.

Meiner Erfahrung nach, ist der Weg um zwei Instanzen laufen zu lassen, wenn Sie den tatsächlichen Build sowie den Webpack-dev-Server haben wollen. Also, in einem Terminal-Fenster haben

webpack --watch 

läuft, (webpack --watch die tatsächliche Bündel Rebuild). Dann müssen in einem anderen Terminal

webpack-dev-server 

laufen, (webpack-dev-Server reaload lebt und aus dem Speicher dient den neuen Build).

+0

Ok, hab ich ... Was ist dann üblich? Soll webpack-dev-server während der Entwicklung verwendet werden und Webpack nur dann aufgerufen werden, wenn das Paket für die Produktion erstellt wird? Wann generieren Leute die Datei bundle.js? – mguijarr

+0

@mguijarr Obwohl das ist genau das, was ich die meiste Zeit mache (benutze webpack-dev-server während der Entwicklung und rufe dann webpack auf, wenn ich produktionsbereit bin), bin ich nicht sicher, ob dies die beste Vorgehensweise ist oder ob es eine gibt bessere/effektivere Art und Weise und würde jede andere Meinung zu diesem Thema schätzen. –

1

Dieses Plugin erzwingt webpack-dev-server, um auch Bundle-Dateien zu schreiben, wodurch die Notwendigkeit, zwei Prozesse im Terminal auszuführen, entfällt.

gajus/write-file-webpack-plugin