是否可以在 VS Code 终端中编译/执行/调试纯 JavaScript?

Posted

技术标签:

【中文标题】是否可以在 VS Code 终端中编译/执行/调试纯 JavaScript?【英文标题】:Is it possible to compile/execute/debug pure JavaScript in VS Code terminal? 【发布时间】:2021-02-15 18:18:39 【问题描述】:

例如,如果我有一个带有纯 javascript 代码的 .js 文件,例如:

function doIt(a, b)

    return a + b;

是否可以在 VS Code 终端中执行代码——就像我在 Web 浏览器开发工具中执行的一样?是否有一些特殊的终端扩展可以让我这样做?希望每次保存文件时不需要我手动运行/编译的东西?

我不是在编写 Node.js 代码,所以我不知道(认为)Node.js 扩展会起作用。

** 更新**

我不想只执行脚本并退出/终止。我想执行它,但将它保存在内存中,在终端窗口中,这样我就可以与它进行交互交互。例如,使用各种参数运行 doIt 以查看结果/输出——就像我在 Chrome 的开发控制台中一样。

【问题讨论】:

这能回答你的问题吗? Run JavaScript in Visual Studio Code 相关:js vs node 这将执行脚本中的代码并退出/停止。我想执行代码但将其保存在内存中,以便我可以在终端中与它进行交互。例如,使用各种参数调用doIt 以查看输出。就像我从 Chrome 开发人员工具窗格中的控制台一样。 @JBallin 我不确定它是如何相关的。我的问题与 Node 无关。 @JBallin - 你应该撤回你的近距离投票。这不是一个重复的问题。 OP 不想使用 NodeJS 运行此代码。 【参考方案1】:

Node 是本地运行 JavaScript 的最常用方式。浏览器控制台本质上是一个REPL(Read Eval Print Loop),Node有built in!

安装Node并打开终端:

$ echo "function doIt(a, b)  return a + b; " > script.js
$ node
Welcome to Node.js v12.19.0.
Type ".help" for more information.
> .load script.js
function doIt(a, b)  return a + b; 
 
undefined
> doIt(1,2)
3

【讨论】:

嗯。所以我想我需要找到一种方法来编辑 VS Code 中的代码,然后执行一些操作,以便 node 在终端中加载它并保持 node 会话打开,以便我可以与之交互。 是的,您在 VS Code 中编辑代码(在本例中为 script.js),然后当您 .load 它时,您可以在终端中与它进行交互 - 会话 继续开放。如果您想编辑文件,您可以.exit 并打开一个新会话 - 是缺少的东西(保存时自动刷新会话)吗? 是的。自动刷新。我想。但我仍在研究。 你试过我的建议了吗? 我正在努力。需要安装Node。工作电脑,所以我必须得到各种批准。【参考方案2】:

这不能仅与 VSC 一起使用,但可以在 Node.JS 中完成。您可以简单地在 node 中包含 readline 模块,它将接受用户的输入。这是一个例子:

        const readline = require('readline')
        const rl = readline.createInterface(
        input: process.stdin,
        output: process.stdout,
        terminal: true,
        );
        console.log('Enter your height (centimeters)')
        rl.on('line', (input) => 
        console.log(`Your height is $inputcm`);
        );```

【讨论】:

以上是关于是否可以在 VS Code 终端中编译/执行/调试纯 JavaScript?的主要内容,如果未能解决你的问题,请参考以下文章

使用Windows 10和MINGW编译器在VS Code上使用gdb调试器调试时出错

VS Code 在集成终端而不是调试控制台中开始调试

如何在 VS Code 中调试夜班测试

如何为 VS Code 的集成终端设置节点版本?

调试时“运行脚本”如何在 VS Code 中为 node.js 应用程序工作?

是否可以在调试版本中编译 VS 项目,包括要通过不同项目调试的断点?