来自node_modules的console.log()

问题描述 投票:0回答:8

如何从节点项目中的

console.log()
中获得
node_modules
的依赖关系?我正在使用默认的
create-react-app
设置。

当我在应用程序代码中包含

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

我可以通过什么方式获取这些日志?

node.js create-react-app console.log
8个回答
17
投票

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

  • 确保您正在对项目进行完全重建
  • 清除 babel 缓存或尝试
    BABEL_DISABLE_CACHE=1 webpack
  • 仔细检查您要添加的 console.log 不在依赖项的源代码中,因此永远不会被调用。
  • 尝试在依赖文件的较高位置添加 console.log 以更好地了解它正在加载

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


12
投票

删除node_modules内的.cache对我有用


9
投票

如果您想调试依赖项,您应该将依赖项从node_modules复制到您的项目中,并从您的项目路径调用


4
投票

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

2.)

yarn cache clean
.

3.) 构建项目和日志应该出现。


3
投票

我遇到了同样的问题,我通过使用

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

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


0
投票

作为最后的手段,您还可以在向依赖项添加日志记录语句后尝试手动重建依赖项。例如,如果您的 dep 的 package.json 有一个像

build
这样的
build: gulp build
命令,您可以通过 cli 导航到该包并手动运行该命令。


0
投票

尝试了上述所有解决方案后,我尝试使用另一个网络浏览器,它成功了


-1
投票

当我尝试添加一个插件时,我可以在终端内看到来自节点模块的控制台日志

sudo ionic cordova 插件添加 cordova-plugin-app-version

输出

✔ 为您创建 ./www 目录 - 完成! cordova 插件添加 cordova-plugin-app-version 发布%%######### 22.1.0 22 插件“cordova-plugin-app-version”已安装在 ios 上。 将 cordova-plugin-app-version 添加到 package.json

© www.soinside.com 2019 - 2024. All rights reserved.