如何调试生成中的节点模块部分

How to debug a node module part of a build?

本文关键字:节点 模块部 何调试 调试      更新时间:2023-09-26

在我的许多应用程序中,我使用NPM package.json来管理我的构建工具。我发现其中一个模块可能有一个错误。我想调试它,但我不知道如何在构建任务的上下文中调试应用程序。

具体来说,在本例中,我使用的是Ember-cli。Ember-cli有一个build命令:ember build,它使用package.json中定义的一组模块(如ember-cli-compass-compiler)来构建应用程序。

我希望能够在ember-cli-compass-compiler模块的某些点添加断点或某种日志记录,这些点在构建运行时会被触发,这样我就可以检查值。

根据https://github.com/ember-cli/ember-cli/blob/c8934ab0f2eb3aab03ce4557a36c317887245b95/lib/models/project.js作为构建步骤的一部分,查看项目的package.json并检查ember-cli compass。之后,它可能会使用项目的本地版本ember-cli compass编译器来执行一些任务。调试它的最简单方法是使用console.log()并记录ember-cli compass编译器中的各个点,以查看触发了哪些代码路径。

编译器的代码库非常小,您可能希望从index.js开始https://github.com/quaertym/ember-cli-compass-compiler/blob/master/index.js

node --inspect-brk ./node_modules/.bin/ember build

将在调试器中启动程序。附加后,它将在入口点停止——如果您还没有设置断点,那么现在是设置断点的方便时机。

你可能不得不跳过一些";false";正常且处理正确的错误-它们看起来是随机的,如果你没有预料到,可能会令人困惑。您可以取消选中";捕获的异常";为了避免这种情况,但是您可能会错过ember中发生在断点之前的重要捕获异常。