一、安装os模块
os
模块是 Node.js 的内置模块,不需要额外安装
二、在项目中新建一个名为 getLocalIpAddress.js
的文件
// getLocalIpAddress.js
const os = require('os');
function getLocalIpAddress() {
const interfaces = os.networkInterfaces();
for (const name of Object.keys(interfaces)) {
for (const interface of interfaces[name]) {
const {address, family, internal} = interface;
if (family === 'IPv4' && !internal) {
return address;
}
}
}
return '127.0.0.1'; // 返回默认的localhost地址,以防找不到合适的IPv4地址
}
module.exports = getLocalIpAddress;
三、在目标页面引入并运用
如在vue2项目的 webpack.dev.conf.js
文件顶部导入这个新函数
const getLocalIpAddress = require('./getLocalIpAddress');
修改 compilationSuccessInfo.messages
部分来使用这个函数获取的 IP 地址
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [
`Your application is running here: http://localhost:${port}`,
`Network URL: http://${getLocalIpAddress()}:${port}`, // 使用 getLocalIpAddress 函数获取 IP
],
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
}))
这样终端加载成功以后从单局域网变成可以获取本地ip的