Visual Studio Code 在调试时重定向输入

Diz*_*zzy 9 node.js visual-studio-code

我的应用程序正在从标准输入读取:

var input = process.stdin.read();
Run Code Online (Sandbox Code Playgroud)

是否可以将 Visual Studio Code 配置为在调试时重定向输入?

所以它等于这个命令行:

node app.js < input.txt
Run Code Online (Sandbox Code Playgroud)

此配置不起作用,并且调试未启动。

{
  "name": "Launch",
  "type": "node",
  "program": "app.js",
  "stopOnEntry": false,
  "args": [
    "<",
    "input.txt"
  ]
}
Run Code Online (Sandbox Code Playgroud)

Rya*_*Joy 4

args数组通常用于 Node.js 启动和 V8 引擎运行时标志。

  --no-deprecation
  --throw-deprecation
  --trace-deprecation
  --v8-options
  --max-stack-size=val
  --icu-data-dir=dir

  --enable-ssl2
  --enable-ssl3
Run Code Online (Sandbox Code Playgroud)

在命令行中键入node --v8-options以查看 V8 运行时标志的完整列表。

我建议您使用命令行中的调试标志启动应用程序,以便您可以指示它进行调试stdin,然后将调试器附加到正在运行的进程。

> node --debug app.js
Debugger listening on port 5858
Run Code Online (Sandbox Code Playgroud)

您的 launch.json 文件中可以有多个配置。添加或修改一个作为您的“附加”调试配置。对于附加,必须指定“地址”和“端口”(请注意,“地址”必须设置为“localhost”,因为尚不支持远程调试)。端口应该是上面调试启动过程返回的端口。

在此输入图像描述

一旦您的应用程序在指定的端口上运行,您就可以在播放/运行图标旁边的下拉列表中更改调试目标。

在此输入图像描述