simplify the life

用 VSCode 调试 Node.js

  1. 选择一个文件启动。选择﹝Run Current File﹞会将当前文件作为入口进行启动,本质是 node xx.js
  2. 命令行启动。选择﹝JavaScript Debug Terminal﹞,VSCode 中会打开一个终端,在里面启动命令如 node xx.js,自动进行 Debugger attached
  3. npm scripts 命令启动。选择﹝Node.js...﹞,然后会展示所有 package.json 里的 scripts 命令,选择一个进行启动

1 用于调试简单的单文件比较方便,3 用于大型比较正式的有 package.json 的项目(配置了 scripts)


以上这些不需要配置文件,启用配置文件可以定制化更多内容,选择﹝添加配置...﹞

本质是配置 .vscode/launch.json 文件,而这个文件的本质是能提供多个启动命令入口选择

  1. ﹝Node.js: Attach﹞看起来是指定 port 进行 attach,但是我没尝试成功
  2. ﹝Node.js: Attach to Process﹞指定进程进行 attach(比如已经用 npm 命令启动了服务)
  3. ﹝Node.js: Launch Program﹞新建一个 launch
  4. ﹝Node.js: Launch via npm﹞用 npm 的启动方式新建个 launch

好处是可以自己配置些东西,比如 skipFiles(默认调试会进入到 node_modules 目录,可以指定忽略)

  • program 控制启动文件的路径(即入口文件)
  • name 下拉菜单中显示的名称(该命令对应的入口名称)
  • request 分为 launch(启动)和 attach(附加)(进程已经启动)
  • skipFiles 指定单步调试跳过的代码
  • runtimeExecutable 设置运行时可执行文件,默认是 node,可以设置成 nodemon,ts-node,npm 等

一个 skipFiles 示例:

"skipFiles": [
  "${workspaceFolder}/node_modules/**/*.js",  // 跳过 node_modules
  "${workspaceFolder}/lib/**/*.js", // 跳过 lib
  "<node_internals>/**/*.js" // 跳过 node 核心模块
]

如果打印 没有可用的调试程序,无法发送“variables”,可以打个断点

posted on 2022-11-09 09:17  lessfish  阅读(1653)  评论(0编辑  收藏  举报

导航