遇到问题
最近在mac上,electron项目dev环境使用解压工具node-7z遇到log报错:unknown error,没有详细报错信息
由于第一次使用,再加上网络上相关文档也很少,一直没找到解决方案。在折磨几天后,今天在浏览器打断点,连续跟踪代码,最终发现:
调用了一个node_modules/.bin/7z
这是一个快捷方式,右键显示原身,cao 这是一个.exe程序,我电脑是mac,不报错才怪。
分析
初步简单分析了一下, electron项目本身 build 有使用7zip,所以项目npm install 会下载2个包,7zip、7zip-bin。
7zip这个包会在上文中说的 node_modules/.bin/7z 建立这个快捷方式;
而我们自己安装的刚好也是node-7z,node-7z机制是调用的系统安装的7zip命令:7z,所以这里可能是代码调用的“就近原则”,错误调用到这个同名exe文件的快捷方式 7z
解决
删除 node_modules/.bin/7z 这个快捷方式,报错就消失了。此时调用的应该就是 本机系统安装的7zip工具了,dev环境可以正常解压了
打包后又遇到一个问题:
mac上electron使用node-7z打包后 Error: spawn 7z ENOENT