1、根目录下新建文件 getLocalIp.js:
在 vue.config.js
中直接获取本地 IP 地址是不可能的,因为这个配置文件是在编译构建过程中使用的,而获取本地IP通常需要在运行时进行。不过,可以在项目中使用 Node.js 代码来获取本地 IP,并在编译时通过环境变量传递给 Vue。
以下是一个简单的 Node.js 脚本,用于获取本地 IP 地址,并将其导出为环境变量:
// getLocalIp.js
const os = require('os');
const fs = require('fs');
const process = require('process');
function getLocalIp() {
const networkInterfaces = os.networkInterfaces();
for (const iface of Object.values(networkInterfaces)) {
for (const config of iface) {
if (config.family === 'IPv4' && !config.internal) {
return config.address;
}
}
}
throw new Error('No local IP address found');
}
const localIp = getLocalIp();
console.log(`Local IP address: ${localIp}`);
// 将IP地址写入环境变量文件
fs.writeFileSync('.env', `VUE_APP_LOCAL_IP=${localIp}`);
// 退出Node进程
process.exit(0);
2、package.json 的 build 脚本后添加 node getLocalIp.js && :
"scripts": {
"build": "node getLocalIp.js && vue-cli-service build"
},
这个脚本会在构建 Vue 项目之前获取本地 IP,并将其作为环境变量 VUE_APP_LOCAL_IP
导出到 .env
文件中。然后,在 vue.config.js
中,你可以使用 process.env.VUE_APP_LOCAL_IP
来访问这个变量。
请注意,需要确保 .env
文件不会被提交到版本控制系统中,以避免潜在的安全问题。