Node Electron Mac 编译

我有个一个小工具,之前一直是win 版本,现在要编译成mac 可以用的,项目:

https://gitee.com/makalochen/cnblog-tool

首先我们肯定是看看官网怎么说的

https://www.electron.build/configuration/mac

好吧 ,太多配置了,看花了眼

软件图标问题

我看着文档,想这再怎么样先配个图标

于是我在build 配置里加入这一行配置

"mac": {
		"icon": "build/icon/icon.ico"
},

build 编译之后,发现

image-20230215164919367

大概意思就是图标最小要,512 * 512,但是win 上是 256 * 256,好吧 图标编译不过

参考这个:

http://events.jianshu.io/p/cbbcad649e64

得出结论,win , mac 都支持png ,会自动帮你转,这就简单了,还好有图标的svg ,转一下就行

这里提供一个免费的:

https://svgtopng.com/zh/

也可以参考这个:

https://blog.csdn.net/ypf1024/article/details/109892222

我是用的就是mac 命令方式

brew install librsvg
# 查看版本
rsvg-convert --version
# 可以查看帮助文档
rsvg-convert  --help
# 转成 512 * 512的
rsvg-convert -w 512 -h 512 icon.svg > icon.png

至此,图标问题解决了,再次尝试编译,结果还报错

Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT

image-20230215175544898

啥意思的?需要python?原来electron 打包底层是需要python环境的,但是mac新版删掉了py2,只留下py3,所以导致找不到,升级下electron-builder就可以,这里我选择直接把依赖包删掉升到

    "electron-builder": "^23.6.0",

再次编译

image-20230215182339877

不报错了,安装包也出来了,一运行 出问题了

Error: Cannot find module '../lib/Util' Require

模块引入错误

17ee53d467408e2b9515a6285f56757c

这啥意思,看情况是找不到某个模块,看模块名就是我们的

image-20230215185803952

但是我们源码上是可以跳过去的说明没问题,这时候如果有问题就说明打包之后有问题,我们可以找到,打包之后的app.asar文件,打开它看下,它其实就是我们打包之后的代码

image-20230215185958714

参考这里打开:

https://blog.csdn.net/jerry_player/article/details/118763436

# 安装 asar 包
npm install -g asar
# 解压
asar extract app.asar ./ap

可是我打开看了也没问题,也可以跳过去

780b086eb30f12687847b5f1dd2cad46

4584582057a599fdb77b18f1d4c69058

等等好像哪里不对,我写的大写的都可以跳过去,文件系统找的的时候,但是win 上没啥问题,是因为win上不严格区分大小写,包括vscode 也智能的帮我们,不区分大小写,但是在mac 是严格区分的,所以它找不到模块是正常的

果然我改成,小写就换了个报错:

image-20230215192148872

也就是说猜想正确,我们继续将新生成的asar 文件打开看看,果然 一一解决之后,能正常打开

posted @ 2023-02-22 15:14  makalo  阅读(84)  评论(0编辑  收藏  举报