我想制作一个在每台计算机上本地运行的 Node js 应用程序,无论使用什么操作系统。例如,如果我在 Node js 中构建一个待办事项列表应用程序,当我在浏览器中输入 www.todo.app 时,该待办事项应用程序应该运行。我尝试使用 Electron Js 来制作应用程序,但问题是,它需要机器中的额外内存。我知道 Electron 使用内置的 Chrome 浏览器运行。如果我已经在机器上安装了 chrome 浏览器,为什么 Electron 还要在该机器上安装另一个 chrome。
所以,我的问题是,我是否有机会做一个在机器浏览器中本地运行的 Node js 应用程序。
这里的问题实在是太多了。
我尝试使用 Electron Js 来制作应用程序,但问题是,它需要额外的机器内存。
虽然 Electron 应用程序的内存消耗通常比高度优化的本机应用程序更大,但它与独立运行 chrome 相当。因此,从 Electron 切换到基于节点的应用程序(用户需要在本地运行)并不会节省太多内存,尤其是如果用户使用 chrome 来查看 Web 应用程序。
如果我已经在机器中安装了 chrome 浏览器,为什么 Electron 还要在该机器中安装另一个 chrome。
基本上,捆绑运行时可确保您可以控制应用程序中使用的 chrome 版本,无论用户在他/她的计算机中安装了什么。
这也意味着您测试的浏览器引擎是用户使用的浏览器引擎(在所有平台上)。
像 electrino 这样的一些项目尝试通过使用已安装的电子桌面应用程序浏览器引擎来解决这个问题,但据我所知,这些努力都还没有准备好投入生产。
所以,我的问题是,我是否有机会做一个在机器浏览器中本地运行的 Node js 应用程序。
综上所述,没有什么可以真正阻止您构建和分发基于节点的 Web 应用程序。
对于针对技术(或技术倾向)用户的应用程序,人们通常将这些应用程序分发为 npm 软件包或特定于平台的软件包管理器(例如,用于 Windows 的 scoop、用于 mac 的 homebrew、用于 Linux 的 snap 等)。
您还可以使用像 zeit 的 pkg 这样的解决方案将您的应用程序作为独立的二进制文件分发。
据我所知,任何桌面操作系统的应用程序商店都不允许分发网络应用程序。