📜  vscode 调试忽略 node_modules - Javascript (1)

📅  最后修改于: 2023-12-03 14:48:22.447000             🧑  作者: Mango

在 VSCode 中调试并忽略 node_modules

在写 JavaScript 代码时,我们常常使用项目中的模块或依赖,这些模块和依赖可能分布在不同的文件夹中,而且可能存在嵌套的 node_modules 文件夹。在进行调试时,如果没有正确设置,可能会遇到这样的问题:VSCode 调试器会对 node_modules 中的文件进行单步调试,耗费我们大量的时间和精力,而这些文件对于我们实际调试应该是无关的。

本文将介绍如何在 VSCode 中调试 JavaScript 代码并忽略 node_modules 中的文件,让我们的调试过程更加高效。

忽略 node_modules

忽略 node_modules 可以采用两种方式:

方式一:VSCode 设置

在 VSCode 的设置中添加 "search.exclude": { "**/node_modules": true } 可以让 VSCode 在搜索和排除时忽略 node_modules 文件夹。但是,这种方式并不能直接忽略 node_modules 中的文件。如果你单步调试时遇到了 node_modules 中的文件,仍需要逐步跳过或添加断点。

方式二:启动配置

用下列方式修改 VSCode 的启动配置,使得 VSCode 能够在启动时加快过滤 node_modules

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch via NPM",
      "type": "node",
      "request": "launch",
      "runtimeArgs": [
        "--preserve-symlinks",
        "${workspaceFolder}/node_modules/<your main file>"
      ],
      "skipFiles": [ "${workspaceFolder}/node_modules/**/*.js", "<node_internals>/**/*.js" ]
    }
  ]
}

在上述代码中,skipFiles 是用来跳过不需要调试的文件的,我们将所有 node_modules 下的 .js 文件都排除了。这表示当我们在调试我们的代码时,VSCode 将跳过 node_modules 目录中的所有 JavaScript 文件,不再让它们干扰我们的调试。我们通过修改 runtimeArgs,来快速找到需要运行的文件。注意,运行时参数 --preserve-symlinks 是必需的。

小结

至此,我们介绍了在 VSCode 中调试时如何忽略 node_modules 文件夹中的文件。通过下面这个启动配置,我们可以让 VSCode 在启动时根据设置跳过 node_modules 中的 JavaScript 文件,从而使得调试过程更加快捷、高效。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch via NPM",
      "type": "node",
      "request": "launch",
      "runtimeArgs": [
        "--preserve-symlinks",
        "${workspaceFolder}/node_modules/<your main file>"
      ],
      "skipFiles": [ "${workspaceFolder}/node_modules/**/*.js", "<node_internals>/**/*.js" ]
    }
  ]
}