npm安装和弃用的警告

我最近开始使用npm,有时在安装过程中popup一些警告。

比如跑步

npm install gulp-chimp --save-dev 

产生以下警告

npm WARN弃用toiso-string@0.0.2:to-iso-string已被弃用,请改用@ segment / to-iso-string。

npm WARN弃用jade@0.26.3:翡翠已经改名为帕格,请安装最新版本的帕格而不是玉

npm WARN弃用minimatch@0.3.0:请更新至minimatch 3.0.2或更高版本以避免RegExp DoS问题

npm WARN弃用tough-cookie@2.2.2:ReDoS漏洞parsingSet-Cookie https://nodesecurity.io/advisories/130

我的问题不是特定的吞噬黑猩猩,但一般npm。 我应该尝试更新这些软件包吗? 我知道这是开发者打电话来使用更新的软件包,我觉得我可能会尝试自己更新软件包,但是我也担心会让漏洞成为现实。

为了确保更新依赖不会破坏任何东西,版本控制是必须的。 通常情况下,您可以毫不费力地更新已弃用的依赖关系,但肯定有时候这样做会导致使用它的程序包发生破坏。

我不build议做的是忽略弃用错误。 虽然软件包维护人员确实需要更新它,但问题依然存在。 许多这些过时的软件包都有已知的安全漏洞,现在正在影响您的应用程序。

为了更清楚地了解哪些依赖关系已过时,请运行如下所示的内容:

npm outdated -depth=3

它默认的深度为0 ,它只会检查顶层的依赖关系,所以在一定程度上增加深度级别(仅仅是一个例子)会揭示更多的过时的依赖关系。

正如您已经注意到的,更重要的是找出哪些依赖关系可能已知漏洞。 您可以使用像Snyk这样的工具来testing这些漏洞,该工具会根据开源漏洞数据库检查您的依赖关系。 Snyk将允许您在不升级的情况下修补您的漏洞(使用CLI或自动Github拉取请求),以防这些升级破坏您的代码。

充分披露:我在Snyk工作。 :)这就是说,这正是它意味着帮助的问题。