Electron-vite中ELECTRON_RENDERER_URL环境变量如何被设置的

        近期我专注于前端技术栈 Electron 与 Vue3 的学习实践,依照教程网站 快速开始 | electron-vite 的快速入门指引,搭建了一个示例项目。成功完成项目下载,并通过 npm run dev 命令启动项目后,在研读项目 main 目录下的 index.ts 文件时,发现 mainWindow.loadURL 方法中使用的 ELECTRON_RENDERER_URL 环境变量来源不明。查阅 GitHub 上的相关 Issue,得知该变量与 Vite 的 Server 配置有关,但关于其默认值设置方式及端口修改方法却鲜有说明,由此开启了深入探究之旅。

        通过分析 npm run dev 命令的执行逻辑,发现其会读取 package.json 文件中 scripts 字段下的 dev 属性,并执行对应的命令 electron-vite dev 完成项目启动。显然,electron-vite 是关键执行指令,于是我在 node_modules 目录中找到 electron-vite/bin/electron-vite.js 文件。进一步追踪发现,该文件导入了 ../dist/cli.mjs 代码。在 cli.mjs 中定位到 dev 命令的解析逻辑,发现其通过配置项创建了一个 Server。为深入了解该过程,我继续跟进到 lib-RSvVeUu6.mjs 文件中的 createServer 方法,试图从中找到 ELECTRON_RENDERER_URL 环境变量的相关线索 。

由于端口关联着渲染进程,所以我直接定位到解析渲染选项的位置。

至此,我们已经找到了设置 ELECTRON_RENDERER_URL 环境变量的位置。接下来,只需找出 port 参数的设置之处。 往上查看代码可知,port 存在于 conf 之中,而 conf 又处于 server.config.server 里。所以,接下来的重点在于探究 server 的创建过程。 点击 createServer$1 后,跳转至该方法的声明处,却未找到具体实现。既然如此,我们就通过调试模式,以单步调试的方式来探寻具体实现。

找到了具体的实现代码,进去一探究竟。

server通过config来的,我们去看上一步的resolveConfig函数

此处的 config 内容实际上对应着 electron.vite.config.ts 文件中的内容,具体来说就是 renderer 里的对象内容。不过,这个对象里并没有 server 属性。因此,接下来我们要进一步探究 resolveServerOptions 函数是如何对其进行解析的。

通过对解析代码的查看,我们发现虽然构建了一个 server 对象,然而其中并未包含与 port 相关的内容。由此可见,createServer 方法并未设置默认端口。接下来,我们只能进一步查看在创建完 server 之后所调用的 listen 函数了。

进入到startServer函数中。

我们可以看到,当 port 属性未进行配置时,采用了默认值 5173。 至此,ELECTRON_RENDERER_URL 环境变量的设置流程就全部梳理完毕了。

electron-vite 是一个基于 ViteElectron 应用开发工具,它允许开发者使用 Vite 的现代前端特性来构建桌面应用。Electron 是一个使用 Web 技术来创建跨平台的桌面应用的框架,而 Vite 是一个现代的前端构建工具,以速度快、配置简单而著称。electron-vite 结合了两者的优势,使得开发 Electron 应用更加高效。 要对 electron-vite 进行打包配置,通常需要遵循以下步骤: 1. **项目初始化**:首先使用 npm 或 yarn 初始化项目,并安装 electron-vite 相关依赖。 2. **配置 Vite**:配置 Vite 的 `vite.config.js` 文件,这通常涉及到定义构建的入口文件、输出目录、服务器设置等。 3. **Electron 入口文件配置**:在 Electron 的主进程和渲染进程文件中配置启动逻辑,例如 `main.js` 和 `renderer.js`。 4. **打包设置**:使用 electron-vite 的构建命令或者自定义脚本进行打包。通常包括: - 设置构建目标环境,比如生产环境。 - 指定输出目录,通常是 `dist_electron` 或者其他自定义目录。 5. **构建命令**:在 `package.json` 的 `scripts` 中添加构建命令,例如 `"build": "electron-vite build"`,并执行此命令进行打包。 6. **打包后处理**:如果需要,可以在 Vite 构建后运行一些自定义脚本来处理构建产物,比如自动清理、代码签名等。 具体的 electron-vite 打包配置示例代码可能如下所示: ```javascript // vite.config.js import { defineConfig } from 'vite'; import { electron } from '@electron-forge/vite-plugin'; export default defineConfig({ plugins: [electron()], build: { outDir: 'dist_electron', target: 'node14', }, }); ``` 在 `package.json` 中添加构建脚本: ```json { "scripts": { "build": "vite build" } } ``` 执行 `npm run build` 或 `yarn build` 后,electron-vite 会根据配置文件进行打包,打包产物会输出到 `dist_electron` 目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半块橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值