安装npm和弃用警告

3

最近我开始使用npm,在安装过程中,有时会弹出警告。

例如,运行以下命令:

 npm install gulp-chimp --save-dev

产生以下警告:

npm WARN deprecated to-iso-string@0.0.2: to-iso-string已被弃用,请使用@segment/to-iso-string代替。

npm WARN deprecated jade@0.26.3: Jade已更名为pug,请安装最新版本的pug而不是jade。

npm WARN deprecated minimatch@0.3.0: 请更新到minimatch 3.0.2或更高版本,以避免RegExp DoS问题。

npm WARN deprecated tough-cookie@2.2.2: ReDoS漏洞解析Set-Cookie https://nodesecurity.io/advisories/130

我的问题不仅限于gulp-chimp,还包括npm。我应该尝试更新这些软件包吗?我知道是否使用更新后的软件包取决于开发人员,但我担心自己尝试更新软件包会破坏某些内容,同时也担心存在漏洞。

1
在进行任何更新之前,您必须确保它们对您的项目/工具的影响。如果您喜欢更新,您应该准备好根据需要重新配置开发环境中的每个工具。保留版本脚本或列表以跟踪您的Dev工具及其版本。这样,如果更新导致任何问题,您就有一个“回退”选项。 - Andre Canilho
@AndreCanilho提出了一个好观点。你是否使用GIT?这样可以减轻一些焦虑,让你对核心依赖进行重大更改感到更加放心。 - user3155561
1个回答

5
为确保更新依赖不会出现问题,版本控制是必须的。通常情况下,您可以轻松更新已弃用的依赖项,但肯定会有时候这样做会导致使用它的包发生故障。
我不建议忽略弃用错误。虽然包维护者需要在其端更新它,但问题仍然非常严重。许多过时的包存在已知的安全漏洞,这些漏洞现在将影响您的应用程序。
要获取哪些依赖项已过时的准确图片,请运行以下命令:
npm outdated -depth=3
它默认深度为0,只检查顶级依赖项,因此将深度级别增加到某种程度(3只是一个示例)将显示更多已过时的依赖项。
更重要的是,就像你已经注意到的那样,找出这些依赖项中可能存在的已知漏洞。您可以使用像Snyk这样的工具来测试这些漏洞,该工具会检查您的依赖项是否与开源漏洞数据库相匹配。如果升级破坏了您的代码,在这种情况下,Snyk将允许您修补漏洞(使用CLI或自动Github拉取请求)而不升级。
完整披露:我在Snyk工作。 :) 话虽如此,这正是它旨在解决的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接