请问下,`Electron构建Node时也指向 V8` 是什么意思?

1.问题1:

Electron将 V8 作为Chromium的一个部分进行构建,然后在构建Node时也指向那个 V8。

请问下,构建Node时也指向那个 V8 是什么意思?

2.问题2:

由于Electron将Node.js嵌入到它的二进制文件中,所以运行你的代码的Node.js版本与你系统上运行的nodejs版本是无关的。

Electron将Node.js嵌入到它的二进制文件中 指的是将Electron打包吗,打包时候把node.js嵌入到二进制文件中。这里的node.js是在开发使用使用的PC上的的node.js吗?

阅读 2.5k
2 个回答
  1. Electron 你就理解成一个 Chromium 就好了,你开发的Web项目可以运行在这个叫 Electron 的“浏览器”内(比较简单粗暴,但是浅层意思差不多)。而不管 Chromium 还是 NodeJS,其实运行 JS Runtime 就是 V8
  2. Electron 会内置一个 NodeJS,也就是说你在创建一个 Electron 项目的时候下载的依赖里面就有一个打包好了的 NodeJS,所以经常会遇到创建项目是会失败的问题,因为包太大下载时间太长经常会超时。并且最终你打包完成的项目里面就会包含你的项目代码和一个完整的 NodeJS。在你的 Electron 项目运行的时候,就不管最终客户端PC里面有没有安装 NodeJS 都可以运行。

所以就是说 每个不同版本的 Electron 都会对应不同版本的 ChromiumNodeJS
这个可以从 Electron Releases 里面看到。
image.png

头像
dollor
    2.6k149
    广西百色市凌云县

    第一个问题直接找原文更好:

    Electron builds V8 as part of Chromium and then points Node to that V8 when building it.

    意思就是,Electron内部会自带Chromium模块和Node模块,其中V8引擎是Chromium的一部分,而Node模块也使用这个V8引擎来运行JS


    第二个问题,你的电脑装有一个Node.js(是从Node官网下载安装的),Electron内部也自带一个Node(它是Electron的依赖),两者是互相独立的。前者负责项目的启动、打包工作,这些工作只在开发电脑上进行;后者是Electron应用运行时的内部工作,将来会在客户的电脑上进行
    两者的版本可能会不一样,但是验证兼容性的时候,一定要用Electron内部的那个Node来验证。

    撰写回答
    你尚未登录,登录后可以
    • 和开发者交流问题的细节
    • 关注并接收问题和回答的更新提醒
    • 参与内容的编辑和改进,让解决方法与时俱进
    推荐问题