文章图片
首先我们要为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下两种策略都有 , 但由于没有统一的包管理机制 , 多数情况下还是得需要用户提前安装相关的依赖 。 有的软件做了比较完善的安装程序 , 则由安装程序负责维护相关依赖 。
整体上看 , 随着生产成本降低 , 存储空间变大 , 读写和传输效率提高 , 相比于上个世纪 , 人们越来越不在意空间浪费的问题 , 更愿意拿空间换时间 , 近些年的技术发展无不在证明这一趋势 。 因此 , 整体打包的分发策略可能终将占领上风 。
- iPad|iPadmini6从发售之日起,果冻屏现象就一直有,那为什么会出现这种现象?
- oled屏幕|为什么总有人说OLED屏幕伤眼?为什么有人非LCD屏幕手机不用?
- 软件|想换手机,内存选择128G、256G还是512G?内行人建议这么选!
- 阿里巴巴|阿里被罚182亿!腾讯为什么至今安然无恙?
- 软件|高薪达人都在用的10款APP
- 程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?
- 软件|超级好用的办公软件,程序员新手快来收藏
- 软件|有关矢量图与位图的区别介绍
- 华为|终于明白为什么越来越多的华为老用户,换手机时,不愿考虑华为了
- |一部手机用了三年以上是什么感受,你为什么舍不得换机呢?