方法是在electron中修改config.js文件重新写入 vue刷新
preload.js文件
let fs = require('fs')
const { contextBridge } = require("electron");
contextBridge.exposeInMainWorld(
"api", {
changeJSON: (ip) => {
fs.readFile('client/config.js', 'utf8', function (err, data) {
if (err) {
return console.error(err);
}
var person = JSON.parse(data.replace('var config = ', ''))
person.API_IP_PORT= 'http://' + ip + ':7081'
var str = 'var config = ' + JSON.stringify(person);
//串重新写入json文件中
fs.writeFile('client/config.js', str, function (err) {
if (err) {
console.error(err);
}
})
// config.js文件中不要有注释不然会修改失败
})
}
})
vue中调用
<el-button type="primary" @click="setConfigFun"> 修改 </el-button>
const setConfigFun = () => {
window.api.changeJSON(changeIpPort.value);
};