来自node_modules的console.log()

时间:2018-12-10 15:26:57

标签: node.js create-react-app console.log

如何从节点项目console.log()中的依赖项中node_modules?我正在使用默认的create-react-app设置。

当我在应用程序代码中包含console.log()时,日志记录可以正常工作。但是,当我尝试在console.log()中项目的一个依赖项的代码中包含node_modules时,这些将不会出现在控制台中。

有什么办法可以获取这些日志?

5 个答案:

答案 0 :(得分:2)

如果要调试依赖项,应将依赖项从node_modules复制到项目中,然后从项目路径中调用

答案 1 :(得分:0)

如果您要用console.log()修补npm模块来调试问题,它应该会像其他任何控制台语句一样显示。您的根本原因很可能是您的构建。我假设您正在使用babel和捆绑工具,例如Webpack。

  • 确保您正在对项目进行完全重建
  • 清除babel缓存或尝试BABEL_DISABLE_CACHE=1 webpack
  • 再次检查您添加的console.log不在源代码中,因此永远不会调用该依赖项。
  • 尝试在依赖项文件的上方添加console.log,以更好地了解它是否已完全加载

或者,我个人建议您重新考虑您的方法。实际上,我已经做过几次了;如果要将这样的“调试”添加到较低级别的模块,则除非库中存在合法的错误,否则您可能会在错误的位置查找问题。

答案 2 :(得分:0)

1.) 将日志添加到 node_modules 中的依赖项。

2.) yarn cache clean.

3.) 应显示构建项目和日志。

答案 3 :(得分:0)

作为最后的手段,您还可以尝试在向其添加日志语句后手动重建依赖项。例如,如果您的 dep 的 package.json 有一个 build 命令,例如 build: gulp build,您可以通过 cli 导航到该包并手动运行该命令。

答案 4 :(得分:0)

我遇到了同样的问题,我通过使用 package.json 中的链接解决了这个问题。

在我的依赖项中,我使用指向本地 node_modules 库文件夹的链接路径修改库版本:

// before
"random-library-name": "^0.0.1",
// after
"random-library-name": "link:./node_modules/random-library-name",

与此同时,我清理了 npm 的缓存:

npm cache clean

另外,我重建库只是为了确保我构建了正确的版本。