文章图片
首先我们要为Runtime使用者提供一个专有的打包工具 , 我们就叫它:打包工具 。 这个打包工具还内置了几个可执行程序 , 我们给他们起个名字 , 分别叫:
- 最终安装程序
- 最终执行程序
- 最终卸载程序
打包工具的职责:
【软件|为什么 electron 不做成独立的 runtime?】1、按Runtime使用者的要求修改最终执行程序的图标、应用签名、版本、版权、文件名等资源信息 。
2、按Runtime使用者的要求修改最终卸载程序的图标、应用签名、版本、版权、文件名等资源信息 。
3、把最终执行程序、最终卸载程序与Runtime使用者开发好的HTML/CSS/JS等静态文件放到一起 , 压缩成一个压缩包 , 我们叫他:资源文件
4、把这个资源文件以资源的形式封装到最终安装程序中;按Runtime使用者的要求修改这个最终安装程序的图标、应用签名、版本、版权、文件名等资源信息 。
很多linux发行版就是把electron打包成独立的runtime啊 。 但是electron的迭代太快了 , 导致比如vscode从来都落后官方1到2个大版本号 , 所以就算是独立打包你还是会得到electron全家桶 。 而且electron小版本很多 , 独立打包要解决小版本共存问题 。 而且vscode的非oss版本也只能把electron打包进去 。
简单来说就是 , 就是时代变了 , 软件分发策略也变了 。 macOS和linux就是两种策略的典型代表 。 Linux提倡模块化共享 , 每个软件都显式声明依赖关系 , 再配上包管理机制 , 基本上可以做到缺什么库就自动下载什么库 。 这样的好处就在于如果多个软件依赖同一个版本的库 , 那么系统就只安装一份这样的库 , 从而避免了不必要的空间消耗 。
macOS及同类风格的iOS提倡“整体打包” , 每个软件及其依赖的第三方库全部放在一个Bundle里 , 所谓的app本质上就是Bundle文件夹 。 这样做的优点就在于安装简单 , 直接复制即可 , 系统整体上没有什么耦合性 , 反正app各管各的 。 缺点是软件体积大 , 文件重复率高 。
Windows下两种策略都有 , 但由于没有统一的包管理机制 , 多数情况下还是得需要用户提前安装相关的依赖 。 有的软件做了比较完善的安装程序 , 则由安装程序负责维护相关依赖 。
整体上看 , 随着生产成本降低 , 存储空间变大 , 读写和传输效率提高 , 相比于上个世纪 , 人们越来越不在意空间浪费的问题 , 更愿意拿空间换时间 , 近些年的技术发展无不在证明这一趋势 。 因此 , 整体打包的分发策略可能终将占领上风 。
- 安卓手机|为什么现在的安卓手机这么贵?手机店老师傅告诉你
- 软件|米11屏幕无敌,运行软件也很流畅,但是系统确实有BUG
- 软件|浅析SaaS软件和传统软件交付模式的区别
- 华为|为什么有人宁愿溢价买华为也不考虑买性价比高的小米?
- 骗子|戴口罩误导个人真实资料,韩交友软件运营商打击“口罩骗子”
- 朗新科技|“2021中国软件和信息服务业年度十大领军企业”榜单公布
- 软件|回忆杀,有谁还记得哇嘎vagaa这个软件?
- matlab|【真香软件推荐】安卓稀缺冷门软件,好用到让你欲罢不能
- Java|为什么如今越来越多的企业选择java商城?
- 软件|想让一台十万元的新电脑报废,下载2345浏览器就可以达到目的