NPM,无论我做啥,都找不到'graceful-fs'
Posted
技术标签:
【中文标题】NPM,无论我做啥,都找不到\'graceful-fs\'【英文标题】:NPM, cannot find 'graceful-fs', no matter what I doNPM,无论我做什么,都找不到'graceful-fs' 【发布时间】:2012-07-07 22:59:55 【问题描述】:这是我尝试为 node.js 安装 express 时得到的结果
npm install express
module.js:340
throw err;
^
Error: Cannot find module 'graceful-fs'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/share/npm/lib/utils/ini.js:32:10)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
我什至尝试了其他人,但仍然遇到同样的错误。我进行了一些挖掘,并在我的服务器上找到了“gracefui-fs”。
我在亚马逊 ec2 服务器上运行 ubuntu 12.04 LTS。 Node 安装没有错误,但 npm 仍然无法正常工作。我还使用
卸载并重新安装了 npmapt-get
以及来源。在安装过程中我也没有收到任何错误。
【问题讨论】:
我也有同样的问题 :( ***.com/questions/16973604/… 在过去的 5 个小时里我一直被这个问题困扰 :( 只有在部署到我的 Bitbucket 管道时才会发生这种情况 【参考方案1】:遇到了同样的问题。不要从aptitude
或apt-get
下载npm
。
改为尝试:
git clone --depth=1 git://github.com/npm/cli.git
cd cli/scripts
chmod +x install.sh
sudo ./install.sh
在这里看到:NPM can't install appjs. Error: Cannot find module 'graceful-fs'
【讨论】:
使用此解决方案在 Ubuntu 上安装最新版本的 node.js 这在 OS X 10.9 上对我有用。我最初只更新了节点,但它需要这个修复来理顺 npm。 进入你的用户目录,删除npm
文件,然后进入cmd重新安装npm
没用
什么都不做 - 现在我的电脑上安装了一些奇怪的东西【参考方案2】:
我遇到了同样的问题。
sudo npm install
帮我解决了。
【讨论】:
男士,这很简单,但功能强大,感谢您的回复!sudo npm install
通常会导致比其价值更多的问题。如果这甚至完全解决了问题,那么通常意味着您已经破坏了权限,并且您可能到处都有意外的构建问题。 TL;DR:不要这样做。曾经。这很糟糕,而且经常会破坏尚未破坏的东西。【参考方案3】:
我也在使用 Ubuntu 12.04,并且遇到了同样的问题(尽管我不认为这特别是 Ubuntu 的错)。
grimbo@grimbo-ubuntu-12:~/git/SyntaxHighlighter$ npm
module.js:340
throw err;
^
Error: Cannot find module 'graceful-fs'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/share/npm/lib/utils/ini.js:32:10)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
所以我试图找出 npm 从哪里运行:
grimbo@grimbo-ubuntu-12:~/git/SyntaxHighlighter$ sudo find / -name npm
/etc/bash_completion.d/npm
/usr/bin/npm
/usr/local/bin/npm
/usr/local/n/versions/0.8.7/bin/npm
/usr/local/n/versions/0.8.7/lib/node_modules/npm
/usr/local/n/versions/0.8.7/lib/node_modules/npm/bin/npm
/usr/share/lintian/overrides/npm
/usr/share/doc/npm
/usr/share/npm
/usr/share/doc-base/npm
/usr/lib/nodejs/npm
/var/lib/doc-base/documents/npm
以下是几个链接供参考:
/usr/bin/npm -> ../share/npm/bin/npm-cli.js*
/usr/local/n/versions/0.8.7/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js*
确认正在使用的是“/usr/bin/npm”:
grimbo@grimbo-ubuntu-12:~/git/SyntaxHighlighter$ which npm
/usr/bin/npm
所以我尝试专门调用最新的,这似乎可以解决问题:
grimbo@grimbo-ubuntu-12:~/git/SyntaxHighlighter$ /usr/local/n/versions/0.8.7/bin/npm install
npm WARN package.json SyntaxHighlighter@3.0.83 No README.md file found!
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/less
npm http GET https://registry.npmjs.org/jake
npm http GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz
npm http 200 https://registry.npmjs.org/less
npm http GET https://registry.npmjs.org/less/-/less-1.3.0.tgz
npm http 200 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.6.tgz
npm http 200 https://registry.npmjs.org/less/-/less-1.3.0.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.6.tgz
npm http 200 https://registry.npmjs.org/jake
npm http GET https://registry.npmjs.org/jake/-/jake-0.3.14.tgz
npm http 200 https://registry.npmjs.org/jake/-/jake-0.3.14.tgz
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/utilities
npm http GET https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz
npm http 200 https://registry.npmjs.org/utilities
npm http GET https://registry.npmjs.org/utilities/-/utilities-0.0.11.tgz
npm http 200 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.0.1.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz
npm http 200 https://registry.npmjs.org/utilities/-/utilities-0.0.11.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.0.1.tgz
npm http GET https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz
npm WARN prefer global jake@0.3.14 should be installed with -g
uglify-js@1.3.3 node_modules/uglify-js
less@1.3.0 node_modules/less
minimatch@0.2.6 node_modules/minimatch
+-- lru-cache@2.0.1
jake@0.3.14 node_modules/jake
+-- utilities@0.0.11
+-- minimatch@0.0.5 (lru-cache@1.0.6)
最终,看起来可能是因为我过去安装了其他版本的 node 和 npm,所以它只是混淆了。
【讨论】:
太棒了!非常感谢。 谢谢,花了很多时间在这个上。我正在使用 nvm,当我执行 sudo npm所以在安装 node_js 和 npm 之后,我遇到了同样的问题
my-app# apt-get install mlocate || yum install mlocate
...
my-app$ locate graceful-fs
/usr/lib/nodejs/graceful-fs
... some other junk we don't care about ...
my-app$ export NODE_PATH=/usr/lib/nodejs
my-app$ npm update
... it works ...
【讨论】:
【参考方案5】:只为我的两分钱。 我安装了
sudo npm install -g graceful-fs
这在全球范围内安装了 graceful-fs,它解决了我的问题。
【讨论】:
【参考方案6】:在 Ubuntu 上安装 phonegap 时遇到类似问题,已修复
sudo npm install graceful-fs
【讨论】:
我也在 Ubuntu 上遇到了这个问题。这是为我修复它的解决方案。【参考方案7】:默认情况下,Node 在 ../CollinsProject/node_modules
中查找项目中的模块。
尝试将 graceful-fs 移至此文件夹,它应该可以工作。
如果您想安装要全局使用的模块(跨其他项目),则将 graceful-fs 文件夹移动到 /usr/local/lib/node_modules
。
【讨论】:
模块在全局文件夹中,但它仍然给我一个错误。我删除了 Ubuntu 12.04 实例并安装了 Ubuntu 11,它运行良好,没有错误。我家的机器运行的是 Ubuntu 12.04,运行良好。【参考方案8】:我使用 Windows;类似的应该适用于 Mac 和 Linux
cordova 中的 npm 错误,cordova 使用私有 npm
转到 C:\Users\sssca_000\AppData\Roaming\npm\node_modules\cordova\node_modules 将 npm 重命名为 npm_XXX
转到 C:\Users\sssca_000\AppData\Roaming\npm\node_modules 这是真正的 npm 所在的位置 将 npm 目录从这里复制到 C:\Users\sssca_000\AppData\Roaming\npm\node_modules\cordova\node_modules
对我来说效果很好!
【讨论】:
我不认为这有帮助;它根本没有诊断问题,也没有提出解决方案。 (充其量只是评论。)【参考方案9】:我有 Mint Node.js 8.x 版本,但已通过 n
命令升级到 11.x。问题是n
/npm
只替换/usr/local/bin
目录中的二进制或链接,而不是/usr/bin
目录中的。所以你应该用/usr/local/bin/node-gyp
内容替换/usr/bin/node-gyp
:
sudo cp -f -s /usr/local/bin/node-gyp /usr/bin/node-gyp
【讨论】:
【参考方案10】:在谈到 linux 时,我自认是个木偶,但我摸索到了一个解决方案。我正在运行 ubuntu 12.04 并且遇到了同样的问题。试过这个,它对我有用,也许比我更好的人可以解释为什么,甚至可能对你有用:
sudo npm install socket.io
我之前从 git 安装了 npm 和 node,在我尝试安装 less 并得到与 OP 相同的错误之前,它们似乎都在工作。
【讨论】:
【参考方案11】:如果您安装在自定义目录中,Windows 上也会发生同样的情况。您必须在默认路径下卸载并重新安装。
【讨论】:
【参考方案12】:我遇到了同样的问题,在网上搜索后,唯一对我有用的是重新安装 nodejs、nodejs-dev 和 npm。我按照这个网站的指示: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
【讨论】:
【参考方案13】:安装最后一个稳定版本的节点后,我在 Windows 10 上的解决方案
在主目录nodejs/node_modules中移除当前npm目录 将最后一次构建的 npm https://github.com/npm/npm.git 克隆到 nodejs/node_modules 目录中【讨论】:
【参考方案14】:在我的 CENTOS 7 案例中,我不得不删除旧版本的 lib 文件。
rm -rf /usr/lib/node_modules/*
之后yum reinstall nodejs
解决了!
【讨论】:
【参考方案15】:我已经通过这种方式修复了 linux ubuntu 上的问题:
1.我通过命令删除了 nvm:sudo apt-get remove nvm
然后:
git clone https://github.com/creationix/nvm.git ~/nvm
//For start node you have to run this command every time if you do not add in .profile etc
. ~/nvm/nvm.sh
// Now Install latest stable version of NodeJS
nvm install v5.7.1
// Check installed nodejs version
nvm ls
//You can set which nodejs version you want to use
nvm use v5.7
【讨论】:
【参考方案16】:我这样做了,它终于成功了,必须通过 npm 安装而不是 apt
sudo apt-get purge --auto-remove node-gyp
npm install -g node-gyp
【讨论】:
以上是关于NPM,无论我做啥,都找不到'graceful-fs'的主要内容,如果未能解决你的问题,请参考以下文章
无论我做啥,我都会在打印时遇到语法错误。这是下面的代码,我找不到问题所在