From de960d80aa25c369bf2d49cc53b392f10fd834b7 Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Wed, 27 Jul 2016 11:13:09 +0100 Subject: [PATCH] Allow explicit configuration of port number for webpack dev middleware server. Fixes #223. --- .../Webpack/WebpackDevMiddlewareOptions.cs | 1 + .../npm/aspnet-webpack/package.json | 2 +- .../npm/aspnet-webpack/src/WebpackDevMiddleware.ts | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs index 08a6dbd..fcdde44 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Webpack/WebpackDevMiddlewareOptions.cs @@ -3,6 +3,7 @@ namespace Microsoft.AspNetCore.SpaServices.Webpack public class WebpackDevMiddlewareOptions { public bool HotModuleReplacement { get; set; } + public int HotModuleReplacementServerPort { get; set; } public bool ReactHotModuleReplacement { get; set; } public string ConfigFile { get; set; } } diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json index 6e12ac7..4f652b7 100644 --- a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json +++ b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/package.json @@ -1,6 +1,6 @@ { "name": "aspnet-webpack", - "version": "1.0.7", + "version": "1.0.8", "description": "Helpers for using Webpack in ASP.NET Core projects. Works in conjunction with the Microsoft.AspNetCore.SpaServices NuGet package.", "main": "index.js", "scripts": { diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts index e33433f..af639c9 100644 --- a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts +++ b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-webpack/src/WebpackDevMiddleware.ts @@ -16,6 +16,7 @@ interface CreateDevServerOptions { // These are the options configured in C# and then JSON-serialized, hence the C#-style naming interface DevServerOptions { HotModuleReplacement: boolean; + HotModuleReplacementServerPort: number; ReactHotModuleReplacement: boolean; } @@ -35,9 +36,11 @@ export function createWebpackDevServer(callback: CreateDevServerCallback, option return; } + // The default value, 0, means 'choose randomly' + const suggestedHMRPortOrZero = options.suppliedOptions.HotModuleReplacementServerPort; + const app = connect(); - const defaultPort = 0; // 0 means 'choose randomly'. Could allow an explicit value to be supplied instead. - const listener = app.listen(defaultPort, () => { + const listener = app.listen(suggestedHMRPortOrZero, () => { // Build the final Webpack config based on supplied options if (enableHotModuleReplacement) { // TODO: Stop assuming there's an entry point called 'main'