总有这么一个命题,electron是否可以在 mac系统上构建exe版本,答案是可以的。本文中,苏南大叔就实践一下这个命题。本文的打包主角是electron-packager,代码是electron-quick-start。对这两个名词瞅着眼生的同学,请先查看文末相关链接。

不过,丑话说前面,苏南大叔并不推荐您在mac系统上构建exe。所以,本文存在的目的,仅仅是证明一下其可行性,而并不是在推荐您这么做,请知悉。个人建议:专业的事情请交到专业的人去做,构建exe,请到win系统下面操作。

mac 系统,electron 使用 packager 构建 exe 程序 - mac-wine-exe
mac 系统,electron 使用 packager 构建 exe 程序(图3-1)

本文的测试环境是:mac mojave@10.14.1,electron@3.0.5,wine@3.0.2,electron-packager@12.2.0

安装基础模块

本实践的基础代码是:

代码下载回来后,需要先安装相关模块,并且全局安装electron-packager。这些都是基本套路,苏南大叔在这里就不详细说明了。

npm install
npm install electron-packager -g

相关文章:

安装wine

因为苏南大叔的目标是:在mac系统中,构建exe程序。这个过程中,就需要个插件,叫做winewine的安装是比较容易出问题的。下面有一些遇到wine安装问题的解决方案。假设一切顺利的话,您可能需要的安装命令是:

brew install ruby
brew cask install xquartz
xcode-select --install
brew install wine

第一次使用wine的话,可能会有个比较长事件的初始化过程。请有个心理准备。

相关文章:

执行packager命令

执行packager的打包命令,这个地方可能会报错权限之类的问题,解决的方案就是sudo。苏南大叔定义在package.json中的打包命令是这样的:

electron-packager . $npm_package_productName --app-version=$npm_package_version --app-version=0.0.1 --out=builds --ignore='^/builds$' --platform=win32 --arch=ia32 --version-string.CompanyName='My Company Ltd' --version-string.LegalCopyright='Copyright (C) 2016 My Company Ltd' --version-string.FileDescription=$npm_package_productName --version-string.OriginalFilename='MyApp.exe' --version-string.InternalName=$npm_package_productName --version-string.ProductName=$npm_package_productName --version-string.ProductVersion=$npm_package_version --asar=true --overwrite

这个命令看起来很长,核心的就下面的这样。可选的参数就是--arch,或者是ia32或者是x64

electron-packager . --platform=win32 --arch=ia32
electron-packager . --platform=win32 --arch=x64

mac 系统,electron 使用 packager 构建 exe 程序 - mac-exe
mac 系统,electron 使用 packager 构建 exe 程序(图3-2)

相关文章:

查看结果

不出意外的话,会在当前项目下的builds目录中,看到类似electron-quick-start-win32-ia32的文件夹。里面就是本次实验的结果了。在正统的windows下运行该exe。成功!本次实验完美结束。

mac 系统,electron 使用 packager 构建 exe 程序 - mac-exe-ok
mac 系统,electron 使用 packager 构建 exe 程序(图3-3)

结论

mac系统,借助wine是可以打包exe的。虽然不推荐这么操作,但是确实是可以成功的。如果您喜欢折腾,可以试试看。但是,据说在win下面,是不可以打包mac上的dmg的。这个大家也可以试试。A=>B,B!=>A。

更多electron的文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章:

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!