0

Also arbeite ich gerade an einer .NET MVC-Anwendung, wo ein Teil der App ein Portal ist, wo der Client komplett mit reactjs gerendert wird. GrundsätzlichKann Hot Module Replacement nicht an einem anderen Port arbeiten

Ich habe eine index.cshtml Datei für mein Portal, das ungefähr so ​​aussieht:

<html lang="en"> 
<head> 
    <title>User Portal</title> 
</head> 

<body> 
    <div id="app"></div> 
    <script src="http://localhost:3000/bundle.js"></script> 
</body> 
</html> 

und meine Client-Seite reactjs App läuft concurently auf Port 3000 einen Express-Server. Ich greife über localhost: 53079 auf meine MVC-Hauptanwendung zu. Ich habe mich gefragt, ob es möglich ist, das Modul erneut zu laden, um an Port 53079 zu arbeiten, da ich so auf meine Anwendung zugreife?

sieht mein webpack.config.dev.js wie folgt aus:

export default { 
    debug: true, 
    devtool: 'inline-source-map', 
    noInfo: false, 
    entry: [ 
    'eventsource-polyfill', // necessary for hot reloading with IE 
    'webpack-hot-middleware/client?reload=true', //note that it reloads the page if hot module reloading fails. 
    path.resolve(__dirname, 'src/index') 
    ], 
    target: 'web', 
    output: { 
    path: __dirname + '/dist', // Note: Physical files are only output by the production build task `npm run build`. 
    publicPath: 'http://localhost:3000/', 
    filename: 'bundle.js' 
    }, 
    devServer: { 
    contentBase: path.resolve(__dirname, 'src') 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.NoErrorsPlugin() 
    ], 
    module: { 
    //..... 
    } 
}; 

Ich habe versucht, ohne Erfolg die Portnummer in devserver sowie in den Ausgabepfad ändern. Ich konnte auch sehr wenig lesen, wie man hmr Portnummern konfiguriert. Zurzeit wird meine Konsole mit folgender Fehlermeldung übersät:

Die Antwort von EventSource hat einen MIME-Typ ("text/html"), der nicht "text/event-stream" ist. Die Verbindung wird abgebrochen.

+0

Haben Sie jemals eine Lösung gefunden? Ich habe das gleiche Problem mit Angular 2 nach dem Upgrade auf. NET-Core 2. Was passiert an meinem Ende ist, dass das Routing die Anfrage für __webpack_hmr nimmt und die SPA Fallback-Route eingreift und es an den Index, so dass die Anfrage für die HMR ist tatsächlich eine Webseite zurück, daher die 'Text/HTML'. Verdammt, wenn ich herausfinden kann, warum oder wie ich es beheben soll! – yanbu

+0

Ja, das gleiche hier ... Leider konnte ich dazu keine Lösung finden und habe vorerst HMR für die gleichzeitige Entwicklung aufgegeben. –

Antwort

0

Ich habe es herausgefunden, Sie müssen die Optionen auf Ihren hmr Endpunkt zeigen.

app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions { 
      HotModuleReplacement = true, 
      HotModuleReplacementEndpoint = "/dist/__webpack_hmr" 
     }); 
Verwandte Themen