Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebStorm-如何在npm包中找到问题的根源?(节点:36378)[DEP0005]弃用警告_Javascript_Node.js_Logging_Buffer_Webstorm - Fatal编程技术网

Javascript WebStorm-如何在npm包中找到问题的根源?(节点:36378)[DEP0005]弃用警告

Javascript WebStorm-如何在npm包中找到问题的根源?(节点:36378)[DEP0005]弃用警告,javascript,node.js,logging,buffer,webstorm,Javascript,Node.js,Logging,Buffer,Webstorm,我在过去6个月里开始出现这个错误,可能是因为更新了node.js (节点:36378)[DEP0005]弃用警告:缓冲区()已弃用,因为 解决安全性和可用性问题。请使用Buffer.alloc(), 而是使用Buffer.allocUnsafe()或Buffer.from()方法 我已查明导致此警告的特定程序包: 它不再被维护,所以我必须深入挖掘并找到这个问题的根源。但是,我的IDE(WebStorm)没有显示任何代码行。我还搜索了源代码,没有找到任何地方使用的Buffer()。我怎样才能找到这

我在过去6个月里开始出现这个错误,可能是因为更新了
node.js

(节点:36378)[DEP0005]弃用警告:缓冲区()已弃用,因为 解决安全性和可用性问题。请使用Buffer.alloc(), 而是使用Buffer.allocUnsafe()或Buffer.from()方法

我已查明导致此警告的特定程序包:

它不再被维护,所以我必须深入挖掘并找到这个问题的根源。但是,我的IDE(
WebStorm
)没有显示任何代码行。我还搜索了源代码,没有找到任何地方使用的
Buffer()
。我怎样才能找到这个问题的根源

顺便说一句,我还在同一个文件中使用了
fs
,该文件实际上包含
Buffer()
,但是注释掉依赖项和相关函数并没有消除警告

编辑:由于@ix3的建议,我降低了问题的范围

  • 在节点服务器中运行时不会发生这种情况
  • 从终端运行mocha测试时不会发生这种情况
  • 当从
    Webstorm
    运行mocha测试时,会发生这种情况:

所以问题在于Webstorm+Mocha+Node+js日志的交互。他们每个人都能很好地单独工作,但当他们在一起时,我会犯这个错误

不再维护
js日志记录
,这一事实使它成为一个明智的首选。但是,如果它没有调用
新缓冲区
(并且它的任何依赖项都没有),那么一定是其他东西触发了该警告消息。你是如何“查明”那个包裹的问题的

您可能希望在运行程序时附加调试器(例如Chrome内置的调试器)。您可以按照说明进行操作。还要注意的是,Chrome现在已经70了

您还可以尝试将整个源代码树(包括
node\u modules
)进行“grepping”以获得“newbuffer”。有多种方法可以做到这一点,它们因操作系统而异。例如,在像Linux这样的POSIX系统上,您通常可以从项目的根文件夹执行类似于
grep-drescure“new Buffer”的操作。
来搜索该树中所有文件中出现的字符串

最后,值得重复的是,您列出的消息不是错误,而是警告。因此,它不会导致任何不同的行为。换句话说,修复它只会让信息消失;它不会显著改变程序的行为。当然,您仍然应该努力解决这个问题,因为警告告诉您,在node的未来版本中,您现在拥有的代码将停止工作

编辑:查看您共享的无音频视频,您似乎正在做您的问题未提及的所有事情,例如

  • 您使用的是TypeScript(当您使用纯JavaScript时会发生什么情况?)
  • 您仅从IDE中运行测试(当您从命令行运行测试时会发生什么情况?)
很有可能您使用的是旧版本的
ts节点
,该节点


旁白:为了跟踪依赖项何时发生变化(特别是……的依赖项的变化),我强烈建议使用或至少在其他情况下,由于上游的变化,您的应用程序完全有可能在某一天而不是下一天构建和工作。

为了让其他人能够更好地帮助您,请发布有关您的计划的更多信息。它是NodeJS程序还是在web浏览器中运行?您何时看到您提到的错误消息?您使用的是什么版本的NodeJS?您能否在github存储库或gist中分享一个简单的例子来重现这个问题?问题文件是web应用程序的后端。具体来说,它是日志库的自定义包装器。包装器的目的是将所有日志写入文件.log。这只是一个开始,但遗憾的是,仍然没有足够的信息来帮助您进一步。例如,我不能简单地通过运行
mkdir-tmp重现问题;cd-tmp;npm-init-y;npm安装——保存js日志;node-e“require('js-logging').console().debug('Hello,world');”
(它输出“2018-11-08T10:07:23-0600[eval]:1 Hello,world”很好)。在DebianLinux9.5和NodeJS10.13.0上运行时,我刚刚意识到我已经得出了一个结论。问题似乎不在于node.js或该文件。问题是文件+Webstorm+Chai测试。当我运行应用程序时,此警告不会显示在我的终端中,但在我运行测试时会显示。但只有当我使用这个文件时。我要把它录下来。感谢您的帮助,我拍摄了两个视频,展示了这个问题:您可以看到当我测试数百种东西时会有多么烦人,在我的结果之间,我看到了一个警告。js-logging似乎没有任何依赖关系