如何调试构建的节点模块部分?

How to debug a node module part of a build?

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

具体来说,在这种情况下,我使用的是 Ember-cli。 Ember-cli 有一个构建命令: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-compiler 来执行一些任务。调试它的最简单方法是使用 console.log() 并在 ember-cli-compass-compiler 中记录各种点以查看正在触发的代码路径。

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

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

将在调试器中启动程序。附加后,它将在入口点停止 - 如果您尚未设置断点,这是设置它们的方便时间。

您可能需要跳过一些正常且正在正确处理的“假”错误 - 它们看起来是随机的,如果您不希望它们出现,可能会造成混淆。您可以取消选中“捕获的异常”来避免这种情况,但是您可能会错过 ember 中发生在断点之前的重要捕获异常。