Electron将Node.js和Chromium上下文结合起来意味着什么?

时间:2016-07-03 04:01:07

标签: javascript node.js browserify electron chromium

a blog post中,作者提到Electron将Node和Chromium组合成一个“单一上下文”,这意味着我们不必使用Browserify来转换代码。

据我所知,Electron的一个含义是您可以使用网络技术构建跨平台桌面应用。我也理解为什么我们能够写入文件系统的原因是因为Electron已经将Node编入其中。而且,我们能够使用HTML / CSS / JS / DevTools的原因是因为Chromium被烘焙了。但是,我不要认为这是作者所说的。

  • Electron如何将Node和Chromium组合成“单一上下文”?
  • 为什么不再使用Browserify?

2 个答案:

答案 0 :(得分:5)

Chromium 是一个基于Webkit的Web浏览器,带有V8 javascript引擎。它支持所有常用的浏览器和DOM API,因此适用于制作网页而不擅长与底层系统交互。

Node.js 是通过去除V8引擎,构建无头命令行应用程序,并添加大量API来访问文件系统,require()其他文件,运行其他shell来构建的程序等(你期望使用真正的脚本语言。

Electron 以简化的方式尝试用新的更通用的Node.js替换Chromium中使用的V8引擎。它向node.js公开了一些额外的API以允许打开铬窗口,但是每个铬窗口都使用<script> tag将使用node.js引擎解释它。

为什么选择Electron? Chromium之所以无法做到这一点的原因是因为它最初设计为Web浏览器,而在Web浏览器中,文件系统API是闻所未闻的,因为通常文件是托管在远程服务器上并访问用户计算机上的文件会带来安全风险(因为为什么任何一个网页都可以访问您的所有文件?)。

require语句现在开箱即用,因为node.js具有文件系统支持,允许从磁盘同步读取它们,而无需将它们捆绑到同一个javascript文件中或从服务器请求它们。

答案 1 :(得分:2)

因此,在正常情况下,Node.js和Web浏览器是两个独立的上下文,这就是为什么人们通常必须使用Browserify“编译”Node.js代码以便与Web浏览器一起使用。

与PHP脚本相同的是,Web服务器需要某种处理程序才能在Web浏览器中正确执行。与HTML和&amp; CSS甚至JavaScript能够在Web浏览器中执行而无需任何进一步干预,因为Web浏览器已经包含解析HTML并解释和运行JS的所有必要工具。

使用Electron,它与现代Web浏览器如何执行JavaScript的方式相同。使用Electron,Chromium已经过修改,可以执行Node。 Electron 是Browserify,Electron是允许Node.js和Chromium一起工作而不需要任何进一步修改或干预的容器。

因此,通过说Node和Chromium已合并到一个上下文中,所有这意味着Node和Chomium能够相互工作和接口,就像它们是一个一样,无需任何其他工具或步骤来链接'两个在一起。