In 一篇博文 http://maxogden.com/electron-fundamentals.html作者提到 Electron 将 Node 和 Chromium 组合成一个“单一上下文”,这意味着我们不必使用 Browserify 来转换代码。
我知道 Electron 的含义之一是你可以使用 Web 技术构建跨平台桌面应用程序。我也明白我们能够写入文件系统的原因是因为 Electron 内置了 Node。另外,我们能够使用 HTML/CSS/JS/DevTools 的原因是因为 Chromium 内置了。但是,我别以为作者说的就是这个。
- Electron 如何将 Node 和 Chromium 组合成“单一上下文”?
- 为什么不再需要使用 Browserify?
Chromium是一个基于 Webkit 的 Web 浏览器,带有 V8 javascript 引擎。它支持所有常见的浏览器和 DOM API,因此适合制作网页,但不擅长与底层系统交互。
Node.js是通过剥离 V8 引擎、制作无头命令行应用程序并添加广泛的 API 来访问文件系统而构建的,require()
其他文件、运行其他 shell 程序等(您对真正的脚本语言所期望的东西。
Electron一种简化的方式是尝试用新的、更通用的 Node.js 引擎替换 Chromium 中使用的 V8 引擎。它向 node.js 公开了一些额外的 API,以允许打开 chromium 窗口,而且每个 chromium 窗口都使用<script>
标签将使用 node.js 引擎解释它。
为什么是电子?Chromium 本身无法做到这一点的原因是,它最初被设计为一个 Web 浏览器,而在 Web 浏览器中,文件系统 API 是闻所未闻的,因为文件通常托管在远程服务器上,并且访问用户计算机上的文件将是闻所未闻的。存在安全风险(因为为什么任何单个网页都可以访问您的所有文件?)。
require
语句现在可以开箱即用,因为 node.js 具有文件系统支持,允许从磁盘同步读取它们,而不需要将它们捆绑到同一个 javascript 文件中或从服务器请求它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)