2
0

JavaScriptServices 367 B

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