2017-05-11 3 views
2

Ich erstelle eine React & react-router v4-Anwendung im Paket mit Webpack. Ich erstelle async split points mit Webpack zu asynchronen Ladebündeln für reaktive Routerrouten meiner Anwendung on-demand.Wie man bestimmte URLs in webpack-dev-server umschreibt

meine app Unter der Annahme, „myapp“ genannt, wenn ich dies zu meinem Server meiner statischen Vermögenswerte bereitstellen müssen aus bedient werden:

/myapp/static/<assetName> 

Damit das Asynchron-Paket geladen, wenn auf den Server bereitstellen zu arbeiten , mein Webpack Ausgang Config wie folgt:

output: { 
    path: path.resolve(__dirname, "build"), 
    publicPath: "/myapp/static/", 
    chunkFilename: "[name].[chunkhash].bundle.js", 
    filename: "[name].[chunkhash].bundle.js" 
} 

In meinem devserver Abschnitt ich habe dies:

devServer: { 
    historyApiFallback: true, 
    inline: true, 
    port: 4000, 
    publicPath: "/myapp" // this is so my app is served from http://locahost:4000/myapp 
} 

Ich habe keine Probleme, wenn ich wirklich auf meinen Server bereitstellen, aber wenn ich webpack-dev-Server laufen und ich zugreifen:

http://localhost:4000/myapp 

... die HTML serviert wird, aber alle URLs generiert für meine Bündel von HtmlWebpackPlugin sind /myapp/static/<bundleName> und daher nicht abzurufen, wie die Bündel bei /mpapp/<bundleName> serviert werden.

Wie kann ich den webpack-dev-server so konfigurieren, dass er /myapp/static/<bundleName> in /myapp/<bundleName> umwandelt, so dass er zu den Paketen weitergeleitet wird, die tatsächlich lokal unter /myapp bedient werden?

Ich habe alle möglichen Rewrite- und Proxy-Anweisungen ausprobiert, aber ich scheine die App zu kaputt zu machen - ich bin mir sicher, dass es einen einfachen Weg gibt, den ich übersehe.

Vielen Dank.

+0

Eine weitere mögliche Option ist hier ich meine ändern Build-Prozess. Also für lokale Entwickler meine webpack-Konfiguration dient nur Bundles normalerweise und dann verwendet mein Prod-Build-Prozess die spezifische/myapp/static publicPath-Direktive? – Michael

+0

Ich habe einen grundlegenden node.js Express-Server mit webpack-dev-middleware geschrieben, der das erreicht, was ich will - im Grunde mappe ich einen statischen Pfad zu meinem öffentlichen Pfad: 'app.use ("/myapp/static ", express.static (path.join (__ Verzeichnisname, "/../ public"))). '. Gibt es eine Möglichkeit, dies mit dem webpack-dev-server zu erreichen? Vielen Dank. – Michael

Antwort

Verwandte Themen