作者:Moorez
链接:https://juejin.cn/post/6844903750142787591
来源:稀土掘金

编写launch.json

  1. {
  2. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  3. "version": "0.2.0",
  4. "configurations": [
  5. {
  6. "type": "node",
  7. "request": "launch",
  8. "name": "启动程序",
  9. "program": "${workspaceFolder}/app.js"
  10. }
  11. ]
  12. }

在launch.json中会使用到一些预定变量,这里说明一下:

  • ${workspaceRoot}:VSCode中打开文件夹的路径
  • ${workspaceRootFolderName}:VSCode中打开文件夹的路径, 但不包含”/“
  • ${file}:当前打开的文件
  • ${fileBasename}: 当前打开文件的文件名, 不含扩展名
  • ${fileDirname}: 当前打开文件的目录名
  • ${fileExtname} 当前打开文件的扩展名
  • ${cwd}:当前执行目录

当我们在单步调试程序的时候,会进入node_modules里面,通常情况下我们并不需要去关心里面的逻辑实现,只关心项目本身的代码。在这个时候,我们就需要使用skipFiles

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [{
  7. "type": "node",
  8. "request": "launch",
  9. "name": "启动程序",
  10. "program": "${workspaceFolder}/server/app.js",
  11. "runtimeExecutable": "nodemon", // 或者 node-dev
  12. "restart": true,
  13. "console": "integratedTerminal",
  14. "skipFiles": [
  15. "${workspaceRoot}/node_modules/**/*.js",
  16. "<node_internals>/**/*.js"
  17. ]
  18. }]
  19. }

这里新增了三个字段,分别是:

  • runtimeExecutable:用什么命令执行 app.js,这里设置为 nodemon,默认是 node
  • restart:在终止 Node.js 后重启会话
  • console:启动调试目标的位置,这里选择在 vscode 的集成终端输出信息