[英]vscode debug code in node_modules directory
我有一个 node_js 项目,其中包含一些我们自己的 node_js 包。 它们位于 npm 私有仓库中,并在 node_modules 中显示为:
@company/package_name
我们试图在此代码中设置断点,但发现它们从未被击中。
我们认为可能有一个默认的 skipFile 排除了 node_modules 并添加到我们的 launch.json 中:
"skipFiles": ["!${workspaceRoot}/node_modules/**/*.js"]
没有效果。
关于如何在 node_modules 目录中启用调试的任何提示?
我知道这是一个老问题,但如果有人仍然设法偶然发现这一点,您可以使用 VS 代码调试 node_module 文件,方法是首先将 node_module 包与主项目进行符号链接,然后告诉 VS 代码使用符号链接。
如果您打算在 node_module 包中工作,最好对其进行符号链接,以便您在项目中所做的更改也同时应用于模块的代码,因此,当您完成编辑包时,您可以直接查看差异并提交它,而不是从 node_module 内部复制粘贴它并手动应用它。
npm link
。npm link package_name
来链接它。例如,如果您想将包sample-node-module与使用sample-node-module作为其依赖项的项目sample-project链接,您可以通过以下方式进行:
cd sample-node-module
npm link
cd sample-project
npm link sample-node-module
请注意,在第二个link
命令中输入克隆存储库的文件夹名称(而不是包名称本身)。 您不必提供完整路径。 你可以在这里阅读更多关于它的信息
完成上述操作后,您可以简单地在 VS Code 的 launch.json 中添加这个小配置,以使其检测 node_modules 中的断点:
{
"runtimeArgs": [
"--preserve-symlinks"
]
}
可以在此处找到有关此的文档
问题可能出在源地图上。 尝试在 launch.json 中的resolveSourceMapLocations
中添加node_modules/example-package
文件,其中example-package
是模块的目录,要在其中设置断点:
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**",
"node_modules/example-package/**/*.js",
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.