npm警告:graceful-fs@3.0.8已停用:graceful-fs版本3。

53

我正在运行npm install,但它给了我一个错误。在更新之前,我也尝试运行以下命令:$ npm install npm,并且我还更新了graceful-fs。

$ npm install -g graceful-fs
graceful-fs@4.1.3 C:\Users\RDY672\AppData\Roaming\npm\node_modules\graceful-fs

下面是错误信息:

$ npm install -g bower@1.3.12
npm WARN deprecated graceful-fs@3.0.8: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
npm WARN deprecated graceful-fs@2.0.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm
npm ERR! cb() never called!
npm ERR! not ok code 0

3
对于你的参考,gulp是一个非常流行的工具,它依赖于glob-watcher,后者又内部依赖于graceful-fs 1.2.3。 它一直在抱怨这个问题。感觉在某些时候会出现压力情况... - GreenAsJade
1
glob-watcher issue#22 表示这个问题可能没有被解决,因为 glob-watcher 正在被弃用。 - Robert K. Bell
5个回答

52

TL;DR: 如果有必要,只需报告错误并暂时忽略弃用警告。除非它引发错误,否则不必担心。


很可能是间接依赖于一个过时版本的graceful-fs模块,该模块依赖于Node的内部模块(尽管不应该)。这个模块出于必要性重度依赖Node的实现细节,但4.x版本在这方面设计更加鲁棒。3.x版本和4.x版本之间的API变化很少。

说句实话,前几周的一次统计将该模块列为npm上下载量排名第十的模块。我认为这种情况不会有太大改变。由于该模块被广泛使用(npm本身间接依赖于一个过时版本),Node已经采取了临时措施,试图让人们停止使用内部模块

因此,除非你遇到与该模块相关的错误,不必担心。我通常忽略那些弃用警告,因为它们已经非常熟知了。


4
我该如何升级graceful-fs? 使用sudo npm install -g graceful-fs命令进行安装 当前版本为graceful-fs@4.1.3,如果想要升级,需要执行npm install angular-mass-autocomplete命令。 提示:graceful-fs@3.0.8版本及以前的版本在新版node上可能会出现问题,请尽快升级至graceful-fs@^4.0.0版本。 - Greg Dougherty
1
@GregDougherty 你不需要直接升级它 - 你需要先找出间接依赖于它的模块,然后联系那些模块的维护者来更新它们自己或做同样的事情。(你会惊讶地发现有多少人依赖于一个古老版本的 glob,它恰好依赖于过时的 graceful-fs。 这是这个问题的主要驱动力,其他大部分原因都不重要。) - Claudia

49

npm install -g graceful-fs graceful-fs@latest 对我来说可行。

这将安装最新版本的graceful-fs!


1
在我的情况下,我已经安装了graceful-fs,所以我运行了npm update -g graceful-fs@latest,这样就解决了问题。 - Ian

7

您不需要担心它,依赖关系没有问题,因为它只影响开发。Gulp团队已经意识到了这个问题。

我们知道在安装gulp 3.x时会出现graceful-fs弃用警告。

这是由于: 1. 我们的graceful-fs devDependency 2. vinyl-fs依赖项

我们无法升级这两者,因为API有重大变化。

依赖关系没有任何问题,特别是它只用于开发。我们将在gulp 4中更新或删除它,然后消息就会消失。

https://github.com/gulpjs/gulp/issues/1571


2

我同意所有关于它不会有任何影响的评论。但是如果您想升级,以下是需要注意的:

首先,请检查您已经拥有哪些版本的graceful。

$ npm ls graceful-fs

如果您没有最新版本的它,请安装它。

$ sudo npm install -g graceful-fs graceful-fs@latest-version

最新版本在我的Ubuntu 14.04上无法运行。未找到兼容的版本:graceful-fs@latest-version 有效的安装目标: 4.1.4、4.1.3、4.1.2、4.1.1、4.1.0、3.0.8等。 - Preston
把“latest-version”这个词替换成你有的最新版本之一...对不起,我的表述不够清楚,我没有解释清楚你不应该包含“latest-version”这个词...希望这样可以。 - Vic B-A
抱歉,Vic,我对此感到困惑。在Vagrant上使用Ubuntu / Zurb Foundation For Apps设置时遇到了问题,不确定这是否是一个因素。无论如何,在发表此评论时,以下命令可行:npm install -g graceful-fs graceful-fs@4.1.4 - Preston

0

我正在使用Windows平台和Homestead。以下控制台命令适用于我:

npm install --no-bin-links
gulp
npm rebuild node-sass
gulp

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