Electron 子进程未继承全局环境变量解决方法

问题描述:在electron项目开发时,查看使用exec查看环境变量时正常,可以使用exec('node -v')查找到版本信息。在macos打包后,无法获取到版本信息。使用exec('echo $PATH')只能获取到/usr/bin:/bin:/usr/sbin:/sbin,缺少node nvm等其他配置。

主要问题就在于子进程获取到的环境变量不对,与全局环境变量不一致。查阅很多文章也没找到问题解决方法。后来打算直接修改prcess.env.PATH时,加群问了一嘴,老哥给了一个issus的地址。https://github.com/electron/electron/issues/550

解决方法:

方式1

javascript 复制代码
// 第一步
npm i fix-path@3.0.0 -s

// 第二步在主进程main.js中顶部
require('fix-path')()

// 第三部打包验证

方式2

既然PATH不对,那么直接修改PATH即可

javascript 复制代码
// 主进程 main.js
process.env.PATH = process.env.PATH + '你配置的环境变量'

此处可以通过在程序内设置或者其他方法实现,但是不太推荐使用这个办法

相关推荐
AINative软件工程15 小时前
编程
前端·llm
晴天1615 小时前
peerDependencies 全面解析:前端依赖生态的核心机制与实战指南
前端·npm
I'mChloe15 小时前
群晖部署 image-matting:把人像去背景做成一个随开随用的 Web 工具
android·前端
程序员蜡笔熊15 小时前
Vite 8 换芯实测:Rolldown 替掉双引擎,构建快 3.19 倍
前端·javascript·vue
右耳朵猫AI15 小时前
Web前端周刊2026W36 | pnpm 12 Rust 重写、Remix 3 RC、Node.js 26.8.0、htmx 4.0 大版本
前端·rust·node.js
平头哥~15 小时前
Day 21 | animation 与 keyframes:把动画从 A 到 B 变成多点编排
前端·css·css3·css学习
宿6741 天前
vue3-包管理器
前端·vue.js
@PHARAOH1 天前
WHAT - Remix 入门和基本实践:理解两套产物
前端·remix
mayaairi1 天前
Vue2 生命周期完全指南:从创建到销毁的8个钩子函数
前端·javascript·vue.js
研☆香1 天前
一个简单的气泡弹窗制作
javascript