代码之家  ›  专栏  ›  技术社区  ›  Mike Marshall

节点服务器应用程序从未命中代码的第一行,也从未命中VSCode中的断点

  •  0
  • Mike Marshall  · 技术社区  · 4 年前

    使用节点v16。14在Windows 10 Pro上。。。。

    我有一个节点服务器应用程序,它有一个相对较大的#文件(~800)。它有一个索引。应用程序根目录下的js文件和子文件夹中的许多支持文件。

    我使用的是实验性ESM分辨率。

    以下是索引的概要。js文件:

    import api from './worker/api';
    
    await api.someFunction({ /* some properties here });
    

    “api”模块的导入可能会导致引用树中的许多其他导入。有多少我不确定,但参考树最终包含50多个(或更多)模块也就不足为奇了。

    我使用实验节点分辨率和实验模块运行应用程序,因为我试图使用ES6模块结构(而不是require等)。

    node --experimental-modules  --experimental-specifier-resolution=node index.js
    

    有几个问题:

    即使我在VSCode的第一行代码中设置了一个断点,它也不会被击中。但节点进程在内存中不断增长(有时超过1GB),似乎没有执行一行代码。这个过程永远不会结束。

    如果我删除“api”导入,只执行一个简单的索引。js有几个函数,一切正常,我可以点击断点,所以我的环境很好。

    我的问题是,什么会让内存继续像这样增长,而看起来连第一行代码都没有命中,而且从未命中任何断点?我觉得这是一些循环模块导入问题,但我不确定如何解决这种情况。

    0 回复  |  直到 4 年前