electron 项目环境变量使用注意 public

问题

最近项目中,electron需要调用唤醒本地的另一个客户端程序,但是这个客户端程序报错了。sqlite3 报out of memory. apiSHGetFolderPathW 获取CSIDL_COMMON_DOCUMENTS报 1008,试图引用不存在的令牌。

排查

一看到这个,首先想到的就是electron启动子进程的权限不够。有bug.

然后在electron插件中也做了C++的子进程调用实现。没有用处。怪异啊

解决过程

实在是没什么好办法,我写了一个本地服务。在要启用的子进程的这个程序中,做了一下api调用的判断,如果api调用错误则直接退出通知服务进行启动。一切都写好了,然后异常的事情发生了。

程序启动后不断地被服务重启,我发现这个api无论怎么执行都会返回1008的错误码。重点来了,不是系统权限问题。后来我进行打印输出,发现快捷方式启动的api返回公共文档目录是正确的 C\user\public\document,但是通过electron启动的都是electron的运行环境目录。

再次排查

初次想象,应该是环境变量问题。

然后用nodejs打印了一下process.env

发现里面有一个 PUBLIC 环境变量

这个变量的值就是api取到的值。

彻底解决

排查整个项目,发现在项目中有一项设置环境变量的代码、

把这个环境变量设置修改为其他的比如 PUBLIC_CONT就好了。

总结

遇到问题,不能总是分析底层bug,应该更为细致的把所有的异常面以及打印信息都收集好再进行分析处理。

相关推荐
接着奏乐接着舞。34 分钟前
【2026年7月最新】69道RAG面试题
前端·人工智能·后端·aigc·embedding·rag
以和为贵34 分钟前
前端也能搞懂 Agent:从 Function Calling 到自主编排
前端·人工智能·架构
HUMHSX37 分钟前
Vue 组件通信核心知识点梳理
javascript·vue.js·ecmascript
风止何安啊1 小时前
🚦 前端并发请求 “交通管制”:别让你的接口堵成早高峰
前端·javascript·面试
J船长1 小时前
扫盲烂笔头:A 记录、CNAME 的作用, Nginx的用途,为啥叫反向代理
前端
妙码生花1 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(二十六):icon 组件封装
前端·vue.js·typescript
李明卫杭州1 小时前
Vue2 & Vue3 中 Router `props` 配置详解:彻底摆脱 `$route` 依赖
前端·vue.js·前端框架
掘金一周1 小时前
裁员了,公司很爽快,赔偿一分没少 | 沸点周刊 7.8
前端·人工智能·后端
熊猫钓鱼>_>1 小时前
2026 前端的三场底层革命:当 Vue、React Native 和 Three.js 同时去掉中间层
前端·javascript·vue.js·react native·架构·webgl·three.js
名字还没想好☜1 小时前
React useEffect 依赖数组踩坑:闭包陷阱与清理函数
前端·javascript·react.js·react·useeffect