From 8e89e4fbae0b4dd4796b57b17a48823415125f52 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Fri, 31 May 2019 01:20:34 +0800 Subject: [PATCH] fix: display correct address when multiple network adapters present fixes #3266 see https://github.com/vuejs/vue-cli/issues/3266#issuecomment-493487325 --- packages/@vue/cli-service/lib/util/prepareURLs.js | 4 +++- packages/@vue/cli-service/package.json | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@vue/cli-service/lib/util/prepareURLs.js b/packages/@vue/cli-service/lib/util/prepareURLs.js index 2a26030231..66793c465d 100644 --- a/packages/@vue/cli-service/lib/util/prepareURLs.js +++ b/packages/@vue/cli-service/lib/util/prepareURLs.js @@ -9,6 +9,7 @@ const url = require('url') const chalk = require('chalk') const address = require('address') +const defaultGateway = require('default-gateway') module.exports = function prepareUrls (protocol, host, port, pathname = '/') { const formatUrl = hostname => @@ -33,7 +34,8 @@ module.exports = function prepareUrls (protocol, host, port, pathname = '/') { prettyHost = 'localhost' try { // This can only return an IPv4 address - lanUrlForConfig = address.ip() + const result = defaultGateway.v4.sync() + lanUrlForConfig = address.ip(result && result.interface) if (lanUrlForConfig) { // Check if the address is a private ip // https://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index 8f1417393c..4ca88c4103 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -46,6 +46,7 @@ "cssnano": "^4.1.10", "current-script-polyfill": "^1.0.0", "debug": "^4.1.1", + "default-gateway": "^4.2.0", "dotenv": "^8.0.0", "dotenv-expand": "^5.1.0", "file-loader": "^3.0.1",