1. linux(Ubuntu)平台打包
使用dpkg
命令来打包
# Get version name from package.json file
# System installed jq tool
# VERSION=`jq .version ./package.json | tr -d '"'`
# System not install jq tool
VERSION=`cat ./package.json | grep "\"version\"" | tr -d '[a-z\":,\ ]'`
mkdir -p ./build/linux64/usr/share/yourappname/
mkdir -p ./build/linux64/DEBIAN/
mkdir -p ./build/outputs/
cp -r ./yourappfiles/* ./build/linux64/usr/share/yourappname/
touch ./build/linux64/DEBIAN/control
echo "Package: yourappname" >> ./build/linux64/DEBIAN/control
echo "Version: ${VERSION}" >> ./build/linux64/DEBIAN/control
echo "Section: net" >> ./build/linux64/DEBIAN/control
echo "Depends: libgconf-2-4" >> ./build/linux64/DEBIAN/control
echo "Priority: optional" >> ./build/linux64/DEBIAN/control
echo "Suggests: sqlcipher" >> ./build/linux64/DEBIAN/control
echo "Architecture: amd64" >> ./build/linux64/DEBIAN/control
echo "Maintainer: xxx" >> ./build/linux64/DEBIAN/control
echo "Provides: xxx" >> ./build/linux64/DEBIAN/control
echo "Description: xxx" >> ./build/linux64/DEBIAN/control
dpkg -b ./build/linux64 ./build/outputs/yourappname-v${VERSION}-linux-amd64.deb
2. macos平台打包
之前使用的是appdmg
这款工具来打包,使用npm install -g appdmg
安装即可
但是打包出来的dmg
文件体积太大了,随便一个electron程序打包出来都有140+的大小,dmg所有的压缩算法都试过了,均不能有效的减小安装包的体积,所以后面使用pkgbuild
这款工具来打包:
VERSION=`cat ./package.json | grep "\"version\"" | tr -d '[a-z\":,\ ]'`
pkgbuild --install-location /Applications --component ./dists/yourappname-v${VERSION}-darwin-x64/Yourappname.app ./dists/yourappname-v${VERSION}-darwin-x64.pkg
但是上面方法打包出来的pkg包有时候是有问题的,能安装,但是安装完了在LaunchPad里面找不到该应用,所以之后更换了一款打包工具:
https://github.com/scriptingosx/quickpkg
./build/darwin/quickpkg ./dists/yourappname-v${VERSION}-darwin-x64/Yourappname.app --output ./dists/yourappname-v${VERSION}-darwin-x64.pkg
打包出来的pkg亲测可以正常安装并运行,并且体积也由dmg的140+变为现在的60+
3. windows平台打包
对于windows平台打包方式就挺多了,但是大部分都尝试过,最终还是选择了Inno Setup
这款工具来打包,当然了,打包环境是linux
首先需要安装wine
sudo apt-get install wine-stable
下载Inno Setup的安装包,如果需要支持中文的话,需要下载unicode版本
然后执行:
// 在wine中安装Inno Setup
wine ./innosetup-5.6.1-unicode.exe
打开Inno Setup,按向导来生成一个iss文件,这个过程网上一搜一大把
执行打包操作:
wine "C:\Program Files\Inno Setup 5\ISCC.exe" ./build/win32/pack.iss
如果需要传入版本号的话,可以这样做:
VERSION=`cat ./package.json | grep "\"version\"" | tr -d '[a-z\":,\ ]'`
wine "C:\Program Files\Inno Setup 5\ISCC.exe" ./build/win32/pack.iss /DVersion=v${VERSION}
在iss文件中怎么使用呢,可以参考下面代码:
...
AppVerName={#Version}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=yourappname-{#Version}-win32-ia32
...
生成的exe亲测可以在windows上运行。
网友评论