【问题标题】:Set V8 as JavaScript run-time in VS Code (instead of Node.js)在 VS Code 中将 V8 设置为 JavaScript 运行时(而不是 Node.js)
【发布时间】:2019-12-09 01:51:24
【问题描述】:

“这里是一个好奇而不是专家。”我了解到 Node.js 使用 V8 作为其 JavaScript 运行时。在 Visual Studio Code 中,我们设置了“类型:节点”配置来针对 Node.js 执行脚本。但是 Node.js 似乎无法满足我的需求,因为我只想执行一些简单的 JavaScript 函数,而且我不需要 DOM 也不需要 Node.js API。

所以我想知道是否有一种方法可以直接使用 V8 作为我的脚本的运行时并在 VS Code 中设置类似于以下代码的内容,因此不需要 Node.js。

{
    "type": "V8",
    "request": "launch",
    "name": "Launch JS script",
    "program": "${workspaceFolder}/app.js",
    "runtimeExecutable": "V8_compilation_folder"
}

我想我需要编译 V8(顺便说一句,这显然不是很直接)并在 VS Code 配置中设置输出编译路径。我什至不确定这个问题是否有意义,但我认为这对于我的简单脚本会更实用。

【问题讨论】:

  • “我什至不确定这个问题是否有意义” ;-)
  • 试图强制使用 V8 会使它变得更加复杂。没有任何好处。如果您只有简单的脚本,只需按原样使用 node.js。它不会满足您的需要,它正是您所需要的。
  • 打个比方:“这辆车对我的简单需求来说实在是太多了,我能不能把它的引擎拿出来直接用它在城里兜风?” ;-)(FWIW,构建 V8 真的很容易,请参阅 v8.dev/docs/build。)
  • 这是一个有趣的类比;我的想法是把汽车换成自行车或类似的东西,更简单,而不是不完整。

标签: javascript node.js visual-studio-code v8


【解决方案1】:

不,您不能仅使用 V8 运行代码。您需要一些包装器来为其提供代码并提供一些方法来从中获取结果。在没有周围环境的情况下运行也没有任何好处。

Plain V8 甚至不知道如何加载脚本/模块并运行它们,并且它无法与外界通信,因为所有这些都来自运行它的主机。 node.js 会根据需要动态加载内容,因此在加载任何内容之前,它基本上只是 V8 加上模块系统和内存管理。这就是“运行”Javascript 所需要的。

查看 Javascript 规范。没有文件 I/O,没有网络等等……它只是一种语言,它需要一个运行时库和宿主环境来做一些有用的事情。这就是 node.js 的本质——一个让它变得有用的环境。

【讨论】:

    猜你喜欢
    • 2019-05-11
    • 2023-03-29
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多