vscode node_modules目录中的调试代码

时间:2017-10-30 17:32:17

标签: node.js visual-studio-code

我有一个node_js项目,其中包含一些我们自己的node_js包。它们位于npm私有仓库中,并在node_modules中显示为:

@company/package_name

我们正试图在此代码中设置断点,并发现它们永远不会被击中。

我们认为可能有一个默认的skipFile,它排除了node_modules并添加到我们的launch.json中:

"skipFiles": ["!${workspaceRoot}/node_modules/**/*.js"]

无效。

有关如何在node_modules目录中启用调试的任何提示?

1 个答案:

答案 0 :(得分:3)

我知道这是一个老问题,但是如果有人仍然设法解决这个问题,您可以使用VS代码来调试node_module文件,方法是先将node_module软件包与主项目符号链接,然后告诉VS代码使用symlink。 >

Symlink node_module程序包

如果要使用node_module软件包,最好将其符号链接,以便将您在项目中进行的更改同时应用于模块的代码,因此在完成编辑后打包后,您可以直接查看diff并提交它,而不是从node_module内部复制粘贴并将其手动应用。

  1. 要将符号node_module中的软件包与项目符号链接,请首先在系统上克隆存储库。
  2. 在目录中运行npm link
  3. 然后转到您的主项目,然后运行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代码在调试时使用符号链接

完成上述操作后,您只需在VS Code的launch.json中添加此小配置,即可检测到node_modules内部的断点:

{
"runtimeArgs": [
    "--preserve-symlinks"
]
}

有关此文档,可以找到here