| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- commit 68c4620a55aae7fd233b719325c62f596df0e39e
- Author: Steve Sanderson <[email protected]>
- Date: Thu Nov 16 09:48:38 2017 +0000
- Consider React dev server ready when it starts listening, not when (and if) it compiles successfully
- diff --git a/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs b/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
- index 58669afd17d..4a8156225b4 100644
- --- a/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
- +++ b/src/Microsoft.AspNetCore.SpaServices.Extensions/ReactDevelopmentServer/ReactDevelopmentServerMiddleware.cs
- @@ -66,13 +66,16 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
- sourcePath, npmScriptName, null, envVars);
- npmScriptRunner.AttachToLogger(logger);
-
- - Match openBrowserLine;
- using (var stdErrReader = new EventedStreamStringReader(npmScriptRunner.StdErr))
- {
- try
- {
- - openBrowserLine = await npmScriptRunner.StdOut.WaitForMatch(
- - new Regex("Local:\\s*(http\\S+)", RegexOptions.None, RegexMatchTimeout),
- + // Although the React dev server may eventually tell us the URL it's listening on,
- + // it doesn't do so until it's finished compiling, and even then only if there were
- + // no compiler warnings. So instead of waiting for that, consider it ready as soon
- + // as it starts listening for requests.
- + await npmScriptRunner.StdOut.WaitForMatch(
- + new Regex("Starting the development server", RegexOptions.None, RegexMatchTimeout),
- StartupTimeout);
- }
- catch (EndOfStreamException ex)
- @@ -91,8 +94,7 @@ namespace Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer
- }
- }
-
- - var uri = new Uri(openBrowserLine.Groups[1].Value);
- - return uri.Port;
- + return portNumber;
- }
- }
- }
|