[英]NPM, cannot find 'graceful-fs', no matter what I do
This is what I get when I try to install express for node.js这是我尝试为 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)
I even tried others and still got the same error.我什至尝试了其他人,但仍然遇到相同的错误。 I did some digging and i did find 'gracefui-fs' on my server.
我做了一些挖掘,我确实在我的服务器上找到了“gracefui-fs”。
I am running ubuntu 12.04 LTS on an amazon ec2 server.我在亚马逊 ec2 服务器上运行 ubuntu 12.04 LTS。 Node installed with no errors, and npm still didn't work.
Node 安装没有错误,npm 仍然没有工作。 I also un installed and re installed npm using
我也未安装并使用重新安装 npm
apt-get
as well as from source.以及从源头。 During installation I received no errors either.
在安装过程中,我也没有收到任何错误。
Had the same problem.有同样的问题。 Don't download
npm
from aptitude
or apt-get
.不要从
aptitude
或apt-get
下载npm
。
Instead try:而是尝试:
git clone --depth=1 git://github.com/npm/cli.git
cd cli/scripts
chmod +x install.sh
sudo ./install.sh
saw it here: NPM can't install appjs.在这里看到: NPM 无法安装 appjs。 Error: Cannot find module 'graceful-fs'
错误:找不到模块“graceful-fs”
I had the same problem.我有同样的问题。
sudo npm install
solved it for me.为我解决了。
I was also using Ubuntu 12.04, and was having this same issue (though I don't think it's specifically Ubuntu's fault).我也在使用 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)
So i tried to work out where npm was running from:所以我试图找出 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
For reference, these were a couple of the links:作为参考,这些是几个链接:
/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*
Confirmation that it was "/usr/bin/npm" that was being used:确认正在使用的是“/usr/bin/npm”:
grimbo@grimbo-ubuntu-12:~/git/SyntaxHighlighter$ which npm
/usr/bin/npm
So I tried to call the latest one specifically, which seemed to do the trick:所以我尝试专门调用最新的,这似乎可以解决问题:
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)
Ultimately, it looks like maybe because I've had other versions of node and npm installed in the past, it just got confused.最终,看起来可能是因为我过去安装了其他版本的 node 和 npm,它只是感到困惑。
So after installing node_js and npm, I was having the same problem所以在安装 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 ...
Just for my two cents.只为我的两分钱。 I install with
我安装
sudo npm install -g graceful-fs
This install graceful-fs globally and it solved my issue.这在全球安装了优雅的 fs,它解决了我的问题。
在 Ubuntu 上安装 phonegap 时遇到了类似的问题,用
sudo npm install graceful-fs
By default Node looks for modules within your project in ../CollinsProject/node_modules
.默认情况下,Node 在
../CollinsProject/node_modules
查找项目中的../CollinsProject/node_modules
。
Try moving graceful-fs to this folder and it should work.尝试将 graceful-fs 移动到此文件夹,它应该可以工作。
If you want to install the module to be used globally (across other projects), then move the graceful-fs folder to /usr/local/lib/node_modules
.如果要安装要全局使用的模块(跨其他项目),请将 graceful-fs 文件夹移动到
/usr/local/lib/node_modules
。
I use Windows;我使用 Windows; similar should work in Mac and Linux
类似的应该适用于 Mac 和 Linux
npm in cordova wrong and cordova uses private npm科尔多瓦中的 npm 错误,科尔多瓦使用私有 npm
go to C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules\\cordova\\node_modules Rename npm to npm_XXX转到 C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules\\cordova\\node_modules 将 npm 重命名为 npm_XXX
Go to C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules This is where real npm resides Copy npm directory from here to C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules\\cordova\\node_modules转到 C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules 这是真正的 npm 所在的位置 将 npm 目录从这里复制到 C:\\Users\\sssca_000\\AppData\\Roaming\\npm\\node_modules\\cordova\\node_modules
It worked fine for me!它对我来说很好用!
I had Mint Node.js 8.x version but have upgraded via n
command to 11.x.我有 Mint Node.js 8.x 版本,但已通过
n
命令升级到 11.x。 The problem was that n
/ npm
only replace binary or link in /usr/local/bin
directory, but not in /usr/bin
directory.问题是,
n
/ npm
只有更换二进制或链接/usr/local/bin
目录,但不是/usr/bin
目录。 So you should replace /usr/bin/node-gyp
with /usr/local/bin/node-gyp
content:所以你应该用
/usr/local/bin/node-gyp
内容替换/usr/bin/node-gyp
:
sudo cp -f -s /usr/local/bin/node-gyp /usr/bin/node-gyp
I'm a self confessed muppet when it comes to linux but rfumbled my way onto a solution.在谈到 linux 时,我是一个自我承认的布偶,但我摸索着找到了解决方案。 I'm running ubuntu 12.04 and was having the same issue.
我正在运行 ubuntu 12.04 并且遇到了同样的问题。 Tried this and it worked for me, maybe a better man than me can explain why and might even work for you:
试过这个,它对我有用,也许比我更好的人可以解释为什么,甚至可能对你有用:
sudo npm install socket.io
I had previously installed npm and node from git and all appeared to be working until I tried to install less and got the same error as OP.我之前从 git 安装了 npm 和 node 并且一切似乎都在工作,直到我尝试安装 less 并得到与 OP 相同的错误。
The same also happens on Windows if you install in a custom directory.如果安装在自定义目录中,Windows 上也会发生同样的情况。 You have to uninstall and install again under default path.
您必须在默认路径下重新卸载并安装。
I came across the same problem and after searching online, the only thing that worked for me was to reinstall nodejs, nodejs-dev and npm.我遇到了同样的问题,在网上搜索后,唯一对我有用的是重新安装 nodejs、nodejs-dev 和 npm。 I followed the directions from this site: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
我遵循了这个站点的指示: https : //github.com/joyent/node/wiki/installing-node.js-via-package-manager
The solution for me on windows 10 after installing the last stable version of node安装最后一个稳定版本的节点后,我在 Windows 10 上的解决方案
In my CENTOS 7 case, i had to delete old version lib files.在我的 CENTOS 7 情况下,我不得不删除旧版本的 lib 文件。
rm -rf /usr/lib/node_modules/*
After that a yum reinstall nodejs
solved!之后
yum reinstall nodejs
解决了!
I have fixed the problem on linux ubuntu in this way:我已经通过这种方式解决了 linux ubuntu 上的问题:
1. I removed nvm by command : sudo apt-get remove nvm 1.我通过命令删除了nvm:sudo apt-get remove nvm
then:然后:
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
i did that and it finally worked, have to install by npm not apt我这样做了,它终于奏效了,必须通过 npm 而不是 apt 安装
sudo apt-get purge --auto-remove node-gyp
npm install -g node-gyp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.