javascript - 有没有办法让每个 NW.js 驱动的应用程序都拥有 261+ MB 的“虚拟数据”?
问题描述
我使用 NW.js。它基本上就像 Electron,只是在某些方面不那么糟糕。但基本的一点是,您将一个完整的巨大 Chromium 构建与您使用它创建的每个游戏/应用程序一起分发。
目前这意味着在 Windows 上为261 MB,在 Linux/macOS 上甚至更大。
如果我将其 7-Zip 压缩为“正常”压缩的 ZIP 存档,它将变为 ~ 97 MB。
如果我将其 7-Zip 压缩到具有“超”压缩的 ZIP 存档,它将变为 ~ 96 MB。与“正常”几乎没有任何区别。
因此,一旦安装,最多有大约 100 megs 加上实际应用程序数据要通过 Internet 分发,而 261+ MB 加上实际应用程序数据会浪费客户系统上的存储空间。
作为一个在 1.44 MB 3½" 软盘上长大的人,经常只在其中一个上存储多个游戏和程序,这对我来说是非常错误的。哎呀,我的第一个硬盘总共有 270 MB的存储空间!
是的,是的,时间在进步,技术在进步等等,但是,我仍然无法克服大量的浪费。我有一种感觉,99% 的数据实际上并没有被使用或没有必要,但我不知道如何明智而可靠地删除它。
我觉得有这么多开销是不对的,不管它有多常见。
解决方案
最终,您将交付一份 Node.js 和一个浏览器。您可以自定义构建 NW.js,这需要从源代码构建 Chromium(非常复杂和困难)。然后,您可以选择排除您的应用不会使用的 Chromium 部分。就个人而言,除非您有合法的商业案例,否则我认为这样做的努力是不值得的。
或者,这里有一篇关于减少应用程序分布大小的方法的详细文章,不需要对 NW.js 进行自定义构建。
最后,除了 NW.js 和 Electron 之外,还有其他选择,其中一些专注于生成非常小的 dist。然而,没有一个能比得上易于开发或强大的功能。
推荐阅读
- wordpress - V-model 不适用于动态添加的下拉菜单
- typescript - 推断属性中的泛型类型(如在函数中)以进行正确的类型检查
- python - ValueError:没有文件类型的引擎:'xlsk'
- c++ - 为什么传统的 GetProcAddress 到 std::function 工作不简单
- tcp - 向多个 netcore 客户端应用程序广播消息的最佳方式是什么?
- android - 使用 Gradle 为 Android 构建包含另一个依赖项项目时出现“无法解析项目”错误
- java - 序列化Scala案例类并在Java中反序列化它们
- javascript - 使用函数参数破坏对象
- python - 如何使用 Django 解析图像 URL 并将其保存在 Cloudinary 中?
- r - 如何从R中的字符串中删除第N个字符?