diff --git a/packages/react-dev-utils/WebpackDevServerUtils.js b/packages/react-dev-utils/WebpackDevServerUtils.js index 70b5e6a7eab..5489815cfea 100644 --- a/packages/react-dev-utils/WebpackDevServerUtils.js +++ b/packages/react-dev-utils/WebpackDevServerUtils.js @@ -193,10 +193,25 @@ function resolveLoopback(proxy) { if (o.hostname !== 'localhost') { return proxy; } - try { + // Unfortunately, many languages (unlike node) do not yet support IPv6 + // this means even though localhost resolves to ::1, the application + // must fall back to IPv4 (on 127.0.0.1). + // We can re-enable this in a few years. + /*try { o.hostname = address.ipv6() ? '::1' : '127.0.0.1'; } catch (_ignored) { o.hostname = '127.0.0.1'; + }*/ + + try { + // Check if we're on a network; if we are, chances are we can resolve + // localhost. Otherwise, we can just be safe and assume localhost is + // IPv4 for maximum compatibility. + if (!address.ip()) { + o.hostname = '127.0.0.1'; + } + } catch (_ignored) { + o.hostname = '127.0.0.1'; } return url.format(o); }