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 文件打開看看,果然 一一解決之後,能正常打開

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章