Electron打包成Snap,AppImage和FreeBSD
很抱歉啊~我本來(lái)應(yīng)該很早就能發(fā)Electron-Builder的視頻,但是電腦壞掉了,我又要準(zhǔn)備中考,所以就耽誤了
現(xiàn)在用的這臺(tái)玩客云,性能嘛——懂得都懂,視頻剪不了(Linux上本來(lái)就剪不了視頻)
就是在瀏覽器里寫文章,有時(shí)候都會(huì)崩潰
在B站上看視頻,最低畫質(zhì)360p卡的跟??一樣
而且因?yàn)橥婵驮茮](méi)有聲卡,還沒(méi)聲音
B站又不支持Markdown,寫起來(lái)又費(fèi)勁
這是要逼我F12手搓HTML啊
哎……
前言
鏈接是點(diǎn)不了的,我只是給它上了色
Electron-Builder官網(wǎng)(https://electron.build)
Electron-Builder中文網(wǎng)(http://electron.org.cn)
現(xiàn)在已經(jīng)有很多成熟的框架可以代替Electron了,比如:
Electron-egg(https://gitee.com/dromara/electron-egg)雖然我不知道和Electron有什么區(qū)別
Tauri(https://tauri.app/zh-cn)
Gluon(https://gluonjs.org)
Ultralight(https://ultralig.ht)
Neutralino.js(https://neutralino.js.org)
甚至還有用QT的NodeGui(https://docs.nodegui.org)
JS的世界太廣大
本次我們使用Electron-Builder。這個(gè)比官方推薦的Electron-Forge好用。 ?
它除了deb和rpm包,還可以構(gòu)建其他一些兼容的包,比如AppImage、Snap
但是大眾好像不太喜歡這些格式,建議像Node.js一樣,把源文件壓縮到tar.xz里發(fā)布
據(jù)說(shuō)Snap運(yùn)行速度慢,包很臃腫,權(quán)限問(wèn)題不好解決
關(guān)于上面這個(gè)問(wèn)題,就我在玩客云中的Armbian里的體驗(yàn),是的
Electron-Forge也可以構(gòu)建Snap。但我試了,失敗了,報(bào)錯(cuò)信息和官方文檔都沒(méi)什么用
其實(shí)還不止這些(https://www.electron.build/configuration/linux),但是Flatpak和apk都會(huì)出bug
注:
Flatpak類似于Snap
apk是安卓Android的軟件包格式
可以正常構(gòu)建,但是無(wú)法安裝,GitHub上(https://github.com/electron-userland/electron-builder/issues?q=apk)有人提過(guò)Issues了,一直沒(méi)人解決,官方估計(jì)也不管了,反正我也有出過(guò)apk的教程,期待Electron-Forge吧

它支持構(gòu)建:
Windows
msi----------Node.js就是這個(gè)格式
appx--------微軟商店
nsis
Mac
dmg----------經(jīng)典格式
pkg-----------Node.js就是這個(gè)格式
mas
Linux
deb-------------適用于Debian,Ubuntu等
rpm-------------適用于Fedora,RedHat等
Snap------------https://snapcraft.io
AppImage------https://appimage.org
其他運(yùn)行時(shí)
打包可以嘗試用Bun.js(一個(gè)新的JS運(yùn)行時(shí),速度比Node.js快) ?
Bun.js官網(wǎng)(https://bun.sh)
似乎可以快一點(diǎn)? ?
還有一個(gè)JS運(yùn)行時(shí)Deno.js(https://www.denojs.cn)
初始化項(xiàng)目
官方的都多少有點(diǎn)問(wèn)題,我就自己整合了一下
GitHub項(xiàng)目地址(https://github.com/abtye/electron-builder-init)
依賴
因?yàn)長(zhǎng)inux發(fā)行版眾多,具體我不是非常清楚
dpkg------------用于構(gòu)建deb包
rpm-------------用于構(gòu)建rpm包
snapcraft------用于構(gòu)建snap包
FUSE------------AppImage的運(yùn)行依賴
FUSE安裝方法:https://github.com/AppImage/AppImageKit/wiki/FUSE
構(gòu)建配置和參數(shù)
官方文檔:https://www.electron.build/cli
Snap
Snap官網(wǎng)的Electron文檔:https://snapcraft.io/docs/electron-apps
安裝
由于沒(méi)有給軟件簽名,所以要加上--dangerous屬性
怎么簽名
不知道,等有空了我再研究
Flatpak
Electron-Forge和Electron-Builder原本都支持構(gòu)建Flatpak,但我都出bug了
Flatpak官方也有文檔(https://docs.flatpak.org/en/latest/electron.html),但我按文檔的做卻失敗了
運(yùn)行AppImage
?1.打開(kāi)終端
2.運(yùn)行:
3.如果提示”權(quán)限不夠”或“permission denied”,就運(yùn)行:
4.缺什么包就裝什么,順便在評(píng)論區(qū)跟我和大家說(shuō)一聲
跨芯片架構(gòu)和平臺(tái)
可以在x86架構(gòu)上構(gòu)建ARM(https://www.arm.com)架構(gòu)的包
支持的芯片架構(gòu):x64、ia32、armv7l、arm64
用法:加上芯片架構(gòu)參數(shù),如:
也可以在Windows上構(gòu)建Linux包,在Linux上構(gòu)建Windows包
但是實(shí)際跨平臺(tái)構(gòu)建的感受非常糟糕,Linux上要安裝Wine(https://www.winehq.org),Windows上估計(jì)要裝WSL
我嘗試在Linux上構(gòu)建Windows包,失敗了
圖標(biāo)
官方的文檔(https://www.electron.build/icons)非常難看懂
Mac至少要512x512像素
Windows至少要256x256像素
測(cè)試
Node.js和Bun.js都可以正常構(gòu)建
如果你想測(cè)試一下ARM的程序能否運(yùn)行,可以使用qemu(https://qemu.org)來(lái)測(cè)試
網(wǎng)上好像有一些已經(jīng)編譯好的版本
網(wǎng)上有教程,我懶得折騰,沒(méi)有具體研究