mac上electron使用node-7z打包后 Error: spawn 7z ENOENT

mac上electron使用node-7z打包后 Error: spawn 7z ENOENT

问题

刚解决上个
mac上electron项目使用node-7z遇到unknown error

打包后,又一个问题
坑是真的多啊,dev环境解压都是正常的,electron打包后,运行解压发现找不到7z命令,报错:Error: spawn 7z ENOENT
我裂了

分析

找到一个老哥的博客
https://blog.csdn.net/fekang/article/details/87261887
分析过程是 ls 命令在electron上打包可以正常使用,7z 却不可以,使用which 查看两个命令的区别,发现位置不同,ls是在/bin/ls;7z是我们自己安装的,在/usr/local/bin有个替身(mac上的快捷方式,不影响使用)
所以,是不是我们的electron软件运行的时候,不能使用到用户设置的环境变量,只能使用系统级别的?

解决

上面博文的解决方案:把要用的 命令文件在/bin下建立一个软连接,我尝试了一下,遇到了mac 的权限限制 operation not permitted;我不太想修改bin 的文件权限,所以这里就不继续修改了。
换个解决方向,由于我的软件目前只在mac上运行,我直接使用了nodo-7z的$bin

const seven = extractFull('./archive.7z', './output/dir/', {
  $bin: '/usr/local/bin/7z'
})

设置为7zip的7z替身位置,打包运行,解压成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值