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

时间:2017-04-20 09:09:25

标签: node.js npm gulp minimatch

我是npm和node.js的新手,在安装node.js,npm和git for windows之后,我正在尝试设置我的工作环境。我试图在全局安装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仍然无法将其识别为已安装的版本,因为它不断推送警告。 关于如何解决它的任何想法?

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这使得npm verion不是minmatch verion,

npm -v minimatch

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

或者,您可以使用

全局安装最新版本
npm install -g minimatch@3.0.2

答案 1 :(得分:1)

遇到同样的问题并在互联网上搜索了一下,我想在这里记录我的解释以备将来参考。

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

gulp间接依赖于过时版本的minimatch ,可以使用npm ls -g minimatch进行验证(如果您在本地安装了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取决于乙烯基-fs 0.3.14,这又取决于glob-stream 3.1.18等等。您可以看到一些嵌套依赖项依赖于minimatch 2.0.10,而其他依赖于minimatch 0.2.14,这正是npm在安装过程中抱怨的版本。

您可能无法自行解决此问题。您可以做的是联系包的作者与过时的依赖项,在本例中为glob,glob-stream和globule,并要求他们将其依赖项更新为更新的版本(或者自己动手并提交拉取请求,如果包是开源的。

但是,有可能这些警告没有任何负面影响,因为目前还没有更新来解决这个问题,尽管有很多人积极使用和依赖gulp。