如何在VSCode中调试NPM库包?

5

我使用Typescript创建了一个库,并将其用于其他NodeJS项目中。我已经将源代码包含在NPM包中,因此当我在消耗此包的项目中安装它时,我也会在node_modules文件夹中获得源代码。

现在,在调试我的项目时,我想要能够触发位于node_modules内部的库代码中设置的断点。我该如何做?

假设我正在尝试调试的项目位于root/my-project,并且该项目正在使用名为@my-org/common的NPM包,该包位于root/my-org-common。由于此库是使用NPM在my-project中安装的,因此@my-org/common的代码也包含在node_modules中,在root/my-project/node_modules中。如何设置我的VSCode,以便触发root/my-project/node_modules中代码的断点?


如果您想要调试库,也许可以暂时将 package.json 中的 main 属性指向 src(或等效路径),而不是 dist/build - Siddharth
我所说的项目代码是一个ExpressJS项目,其中包含路由器和控制器,库代码仅包含数据模型、工具和服务方法。我想要调试通过服务调用的库方法。在这种情况下,更改package.json中的“main”是否有效? - Stupid Man
很遗憾,库代码没有测试,否则我会使用这些测试来调试它。 - Stupid Man
1个回答

3

在这里找到了一个解决方案:vscode debug code in node_modules directory

基本上,你需要创建一个符号链接,指向库的代码,然后通过将以下内容放入launch.json来指示VSCode使用此符号链接:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接