
文章图片

首先我们要为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下两种策略都有 , 但由于没有统一的包管理机制 , 多数情况下还是得需要用户提前安装相关的依赖 。 有的软件做了比较完善的安装程序 , 则由安装程序负责维护相关依赖 。
整体上看 , 随着生产成本降低 , 存储空间变大 , 读写和传输效率提高 , 相比于上个世纪 , 人们越来越不在意空间浪费的问题 , 更愿意拿空间换时间 , 近些年的技术发展无不在证明这一趋势 。 因此 , 整体打包的分发策略可能终将占领上风 。
- 为什么科学家表示人类“灭绝”的可能性极低?这些理由你赞同吗?
- 为什么科学家知道太阳的原理,却无法制造出人造太阳
- 为什么科学家用昆虫翅膀的起源质疑进化论?达尔文到底是对是错?
- 为什么夜空是黑的?你以为的“正常”,或许隐藏着不知道的秘密
- 为什么温度高到一定程度的物体,就会发光?
- 谷歌警告运营商小心Hermit间谍软件
- 为什么现在很少有人提及“克隆技术”了?“克隆技术”有何缺点?
- 腾讯|推荐6款免费软件,上班族最好放在电脑里
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- FL Studio水果Cubase与Studio one三款编曲混音软件对比
