Gulp安装警告:“请更新到minimatch 3.0.2”

我是npm和node.js的新手,并且在为windows安装node.js,npm和git之后,我正在尝试设置我的工作环境。 我正在尝试在全球范围内安装gulp,并将其作为dev的依赖项。 两次都得到这些警告:

npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue 

导致npm取消安装。 我正在运行minimatch 3.0.2

 C:\WINDOWS\system32>npm -v minimatch 3.10.10 

但是npm仍然不能将其识别为已安装的版本,因为它一直在推送警告。 任何想法如何解决?

任何帮助表示赞赏。

这给npm verion不是minmatch verion,

 npm -v minimatch 

转到node_modules并删除minimatch,并在packge.json中确保minmatch版本是“> = 3.0.2”,然后再试一次

或者,你可以安装最新的全球使用

 npm install -g minimatch@3.0.2 

遇到同样的问题,search了一下互联网,我想在这里logging我的解释,以备将来参考。

问题不是你安装的minimatch版本过低或过时。 显示这些警告时,npm也不应该中止安装。

间接地依赖于过时版本的minimatch ,这可以使用npm ls -g minimatch进行validation(如果你在本地安装了gulp ,则不需要-g )。 输出的一部分应该如下所示:

 +-- gulp@3.9.1 | `-- vinyl-fs@0.3.14 | +-- glob-stream@3.1.18 | | +-- glob@4.5.3 | | | `-- minimatch@2.0.10 deduped | | `-- minimatch@2.0.10 | `-- glob-watcher@0.0.6 | `-- gaze@0.5.2 | `-- globule@0.1.0 | +-- glob@3.1.21 | | `-- minimatch@0.2.14 deduped | `-- minimatch@0.2.14 

这个摘录解释了gulp 3.9.1取决于vinyl-fs 0.3.14,这又取决于glob-stream 3.1.18等等。 你可以看到一些嵌套的依赖依赖于minimatch 2.0.10,而另一些依赖于minimatch 0.2.14,这正是安装期间npm所抱怨的版本。

你不可能自己解决这个问题。 你可以做的是联系这些包的作者与过时的依赖关系,在这种情况下glob,glob-stream和globule,并要求他们更新他们的依赖关系到一个更新的版本(或自己做,并提交一个拉请求,如果包是开源的)。

然而,尽pipe有许多人正在积极地使用和依靠饮用水,但由于没有更新来解决这个问题,所以这些警告没有任何负面影响。