我有一个node_js项目,其中包含一些我们自己的node_js包。它们位于npm私有仓库中,并在node_modules中显示为:
@company/package_name
我们正试图在此代码中设置断点,并发现它们永远不会被击中。
我们认为可能有一个默认的skipFile,它排除了node_modules并添加到我们的launch.json中:
"skipFiles": ["!${workspaceRoot}/node_modules/**/*.js"]
无效。
有关如何在node_modules目录中启用调试的任何提示?
答案 0 :(得分:3)
我知道这是一个老问题,但是如果有人仍然设法解决这个问题,您可以使用VS代码来调试node_module文件,方法是先将node_module软件包与主项目符号链接,然后告诉VS代码使用symlink。 >
如果要使用node_module软件包,最好将其符号链接,以便将您在项目中进行的更改同时应用于模块的代码,因此在完成编辑后打包后,您可以直接查看diff并提交它,而不是从node_module内部复制粘贴并将其手动应用。
npm link
。npm link package_name
进行链接。例如,如果您想将软件包 sample-node-module 与使用 sample-node-module < / em>作为其依赖项,您可以按照以下方式进行操作:
cd sample-node-module
npm link
cd sample-project
npm link sample-node-module
请注意,在第二个link
命令中输入克隆存储库的文件夹名称(而不是包名称本身)。您不必提供完整的路径。您可以详细了解here
完成上述操作后,您只需在VS Code的launch.json中添加此小配置,即可检测到node_modules内部的断点:
{
"runtimeArgs": [
"--preserve-symlinks"
]
}
有关此文档,可以找到here