32

これは、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」が見つかりました。

Amazon ec2 サーバーで ubuntu 12.04 LTS を実行しています。ノードはエラーなしでインストールされ、npm はまだ機能しませんでした。また、npmをアンインストールして再インストールしました

apt-get

ソースからも。インストール中にもエラーは発生しませんでした。

4

16 に答える 16

38

Had the same problem. Don't download npm from aptitude or apt-get.

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. Error: Cannot find module 'graceful-fs'

于 2012-11-03T00:22:33.847 に答える
20

私も同じ問題を抱えていました。

sudo npm install 

私のためにそれを解決しました。

于 2012-10-24T08:55:35.763 に答える
15

私も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)

最終的には、過去に他のバージョンのノードと npm をインストールしたことがあるため、混乱したようです。

于 2012-08-26T22:24:48.637 に答える
13

したがって、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 ...
于 2013-03-15T04:29:45.517 に答える
6

ちょうど私の2セントのために。でインストールします

sudo npm install -g graceful-fs

これにより、graceful-fs がグローバルにインストールされ、問題が解決しました。

于 2014-12-17T00:02:47.977 に答える
2

phonegapのインストール中にUbuntuで同様の問題が発生し、修正しました

sudo npm install graceful-fs
于 2013-11-18T19:53:32.240 に答える
1

デフォルトでは、Node はプロジェクト内のモジュールを で検索します ../CollinsProject/node_modules

graceful-fs をこのフォルダーに移動してみてください。動作するはずです。

グローバルに (他のプロジェクト間で) 使用するモジュールをインストールする場合は、graceful-fs フォルダーを に移動します/usr/local/lib/node_modules

于 2012-07-09T22:59:09.960 に答える
1

Windows を使用しています。Mac と Linux でも同様に動作するはずです

コルドバの npm が間違っていて、コルドバがプライベート 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 にコピーします

私にとってはうまくいきました!

于 2016-01-20T04:39:10.033 に答える
0

カスタム ディレクトリにインストールすると、Windows でも同じことが起こります。デフォルトのパスでアンインストールしてから再度インストールする必要があります。

于 2013-07-23T16:31:23.190 に答える
0

私は同じ問題に遭遇し、オンラインで検索した後、nodejs、nodejs-dev、およびnpmを再インストールするだけでうまくいきました。このサイトの指示に従いました: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager

于 2014-08-12T17:42:17.917 に答える
0

私の CENTOS 7 の場合、古いバージョンの lib ファイルを削除する必要がありました。

rm -rf /usr/lib/node_modules/*

その後、yum reinstall nodejs解決しました!

于 2016-11-06T16:22:27.133 に答える