summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/sixty-chicken-obey.md5
-rw-r--r--packages/astro/src/core/messages.ts6
2 files changed, 9 insertions, 2 deletions
diff --git a/.changeset/sixty-chicken-obey.md b/.changeset/sixty-chicken-obey.md
new file mode 100644
index 000000000..be19baace
--- /dev/null
+++ b/.changeset/sixty-chicken-obey.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fix preview --host in Node.js 18
diff --git a/packages/astro/src/core/messages.ts b/packages/astro/src/core/messages.ts
index 6020a45b7..3bfcbb61a 100644
--- a/packages/astro/src/core/messages.ts
+++ b/packages/astro/src/core/messages.ts
@@ -126,13 +126,15 @@ export function resolveServerUrls({
let network: string | null = null;
if (networkLogging === 'visible') {
- const nodeVersion = Number(process.version.substring(1, process.version.indexOf('.', 5)));
const ipv4Networks = Object.values(os.networkInterfaces())
.flatMap((networkInterface) => networkInterface ?? [])
.filter(
(networkInterface) =>
networkInterface?.address &&
- networkInterface?.family === (nodeVersion < 18 || nodeVersion >= 18.4 ? 'IPv4' : 4)
+ // Node < v18
+ ((typeof networkInterface.family === 'string' && networkInterface.family === 'IPv4') ||
+ // Node >= v18
+ (typeof networkInterface.family === 'number' && networkInterface.family === 4))
);
for (let { address: ipv4Address } of ipv4Networks) {
if (ipv4Address.includes('127.0.0.1')) {