electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法

系列文章目录

electron+vite+vue3 快速入门教程

文章目录


前言

使用electron-vite 工具开发项目打包完后每次要改接口地址都要重新打包,对于多环境切换或者频繁变更接口地址就显得麻烦。如果能在安装目录添加一个可配置文件,通过修改配置文件内容改变接口地址问题将迎刃而解。这里记录下一种实现方法。


一、实现过程

1、配置文件(json格式)放置resources资源文件夹下,将同步打包到应用内部,安装后可在安装目录找到

2、启动应用时在App.vue通知主进程通过node fs模块读取配置文件接口地址,并缓存到本地

3、接口请求封装文件(axios)baseURL从本地缓存获取

二、代码演示

1.resources/env.json

c 复制代码
{
  "baseUrl":"http://192.168.2.xxx:xxxx"
}

新建一个json文件内置接口地址

2.App.vue

javascript 复制代码
<script setup>
import { ref, onBeforeMount } from 'vue'
onBeforeMount(async () => {
  let url = await window.electron.ipcRenderer.invoke('baseUrl')
  if (url) {
    localStorage.setItem('baseUrl', url)
  }
})
</script>

应用启动开始时从主进程获取接口地址,缓存到本地localStorage(当然也可以选择缓存到pinia或vuex等)

3.main/index.js

javascript 复制代码
const fs = require('fs');
//获取接口baseurl
ipcMain.handle('baseUrl',()=>{
  const rawData = fs.readFileSync(join(__dirname, '../../resources/env.json'),"utf-8");
  const config = JSON.parse(rawData);
  return config.baseUrl||''
})

主进程通过fs读取env.json内接口地址返回给渲染层

4.request.js

javascript 复制代码
const baseURL = localStorage.getItem('baseUrl')??''
const http = axios.create({
  baseURL,
  timeout: 100000,
   .....
   .....
})
.....
.....

接口请求统一封装文件内,从缓存获取接口地址并设置

5.安装后修改

打开安装目录,在resources\app.asar.unpacked\resources文件夹下可找到env.json配置文件,修改完配置完全退出应用并重启生效

相关推荐
hanchenxing14 分钟前
前端异步任务三方案:Celery vs Redis Stream vs BullMQ 实战对比消息队列
前端·数据库·redis·异步任务·方案对比
默_笙34 分钟前
⚓ AI 的"官方答题卡":withStructuredOutput 与结构化输出的终局之战
前端·javascript
掘金挖土34 分钟前
前端手摸手跑路之 AI 应用开发(五)
前端·后端
小羊没烦恼!1 小时前
Memory 记忆设计讨论:Agent Memory 的数据模型可以怎么设计
java·开发语言·前端·c++·c#
码上成长2 小时前
Mapbox 围栏编辑踩过的几个坑:key 串了、形状炸了、icon 挡住绿点
前端·前端框架
SGAMERrain2 小时前
做了一个免费的在线绘画网格工具 DrawGrid,聊聊一个小工具是怎么越做越完整的
前端
我家猫叫佩奇2 小时前
🦭 厌倦了千篇一律的线性图标?Naive Icons 正式开源
前端·javascript·css
LEE2 小时前
前端转型全栈 00:AI 时代该学哪些,不该学哪些
前端·后端
晚安日记wanna2 小时前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
aixingpan3 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolararc2接口指南
前端·php